1 回答
![?](http://img1.sycdn.imooc.com/545845b40001de9902200220-100-100.jpg)
TA贡献1841条经验 获得超3个赞
如果我有选择,我会在一个方法中完成所有这些计算逻辑
class ExampleSerializer(serializers.ModelSerializer):
generic_field = serializers.SerializerMethodField()
def get_generic_field(self, obj):
# first query
first_result = FirstModel.objects.filter(
filter=self.context.get("filter")
).aggrgate(sum=Sum('any_field'))['sum']
# second query
second_model_instance = SecondModel.objects.filter(
some_value__gte=first_result).first()
second_result = second_model_instance.some_field_name
# and so on
# at last, return these results as
return {
"first_result": first_result,
"second_result": second_result,
# and so on
}
添加回答
举报