1
我的API有ModelSerializer
,它有三個使用serializers.SerializerMethodField
類的自定義字段。他們看起來像這樣:Django REST框架:返回多個字段的一種方法
field1 = serializers.SerializerMethodField()
field2 = serializers.SerializerMethodField()
field3 = serializers.SerializerMethodField()
def get_field1(self, obj):
f1, _, _ = get_field_values(obj.attribute, obj.another_attribute)
return f1
def get_field2(self, obj):
_, f2, _ = get_field_values(obj.attribute, obj.another_attribute)
return f2
def get_field3(self, obj):
_, _, f3 = get_field_values(obj.attribute, obj.another_attribute)
return f3
正如你可以看到我打電話3次相同的功能,並得到相同的結果。我嘗試覆蓋__init__
,但我似乎無法訪問這種情況下的每個對象(只是instance
,這是完整的查詢集)。有沒有我可以覆蓋的函數,我可以將這些輸出值存儲爲一個字典,並在我的字段方法中逐一返回值?
好主意,沒想到在獲取第一個值時實例化它。謝謝! – benwad