【发布时间】:2018-02-28 01:10:55
【问题描述】:
我的帖子序列化程序返回 top cmets 和 cmets 的数量
我标记了下面的冗余代码。
class PostDetailSerializer(serializers.ModelSerializer):
comments = serializers.SerializerMethodField()
comment_count = serializers.SerializerMethodField()
class Meta:
model = Post
fields = (
...
'comments',
'comment_count',
)
# showing the most recent comments
def get_comments(self, obj):
content_type = obj.get_content_type <<
object_id = obj.id <<
comments = Comment.objects.filter_by_instance(obj)[:2] <<
return CommentSerializer(comments, many=True).data
# showing the number of comments
def get_comment_count(self, obj):
content_type = obj.get_content_type <<
object_id = obj.id <<
comments_count = Comment.objects.filter_by_instance(obj).count() <<
return comments_count
它本身工作正常,但我不想在遇到 PostDetailSerializer 时查询 N x 2 行
expected output is below
.....
"comments": [
{
...
"content": "Edited!",
...
},
{
...
"content": "New wwaa!",
...
}
],
"comment_count": 4
【问题讨论】:
标签: django django-models django-forms django-rest-framework