所以在我的项目中,我有一个模型聊天很多消息.我希望ChatSerializer里面有MessageSerializer,很多= True.
但是,我只想包含最后50个Message模型.
class MessageSerializer(serializers.ModelSerializer):
class Meta(object):
model = Message
fields = '__all__'
class ChatSerializer(serializers.ModelSerializer):
messages = MessageSerializer(many=True)
class Meta:
model = Chat
fields = '__all__'
有什么我可以添加到messages = MessageSerializer(many = True),使它只返回最新的50条消息?
谢谢!
最佳答案 您可以使用
SerializerMethodField来做到这一点.
MESSAGE_COUNT = 50 class ChatSerializer(serializers.ModelSerializer): messages = serializers.SerializerMethodField() class Meta: model = Chat fields = '__all__' def get_messages(self, obj): return MessageSerializer(obj.messages[:MESSAGE_COUNT ], many=True).data