【发布时间】:2023-04-10 19:17:01
【问题描述】:
我正在尝试使用 Django Rest 根据未附加到模型但附加到序列化程序的自定义字段的排序来返回模型的 json 表示。我知道如何使用特定于模型的字段来执行此操作,但是当字段仅在序列化程序类中时,如何使用 django rest 返回排序?我想返回按“分数”排序的图片列表。谢谢!
-----Views.py
class PicList(generics.ListAPIView):
queryset = Pic.objects.all()
serializer_class = PicSerializerBasic
filter_backends = (filters.OrderingFilter,)
ordering = ('score')
------Serializer.py
class PicSerializer(serializers.ModelSerializer):
userprofile = serializers.StringRelatedField()
score = serializers.SerializerMethodField()
class Meta:
model = Pic
fields = ('title', 'description', 'image', 'userprofile', 'score')
order_by = (('title',))
def get_score(self, obj):
return Rating.objects.filter(picc=obj).aggregate(Avg('score'))['score__avg']
【问题讨论】:
标签: python django serialization django-rest-framework