我有一个FooModelSerializer。我想显示可以通过Model.objects.annotate(c = Count(some_field))显示的某些字段的计数。
因此,如果我像在ModelViewSet中那样如上所述编写queryset,则可以正常工作,但另一个BarModelSerializer包含此FooModelSerializer。由于我没有在BarModelSerializer中编写queryset,因此FooModelSerializer不会显示某些字段的计数。现在,我想在FooModelSerializer调用时显示某些字段的计数。因此,如何在ModelSerializer中覆盖queryset。
我尝试覆盖to_representation(instance)函数,但实例参数不是查询内容,因此无法添加注释。
FooModelSerializer(serializers.ModelSerializer):
c = serializers.IntegerField()
class Meta:
model = Foo
fields = ('some_field', 'annotate_field', 'c')
BarModelSerializer(serializers.ModelSerializer):
foo = FooModelSerializer()
class Meta:
model = Bar
fields = ('foo',)