我需要从现有表扩展我的序列化程序。
class SER_Assets(serializers.ModelSerializer):
asset_id = serializers.SerializerMethodField()
asset_name = serializers.SerializerMethodField()
def get_asset_id(self, obj):
t1 = Tbl.objects.get(tbl_id=obj.id)
return t1.asset_id
def get_asset_name(self, obj):
..
我知道这个方法.. 两个函数都将调用同一个表我想减少函数。所以我需要调用单个函数来返回多个字段。
这可能吗?
最佳答案
由于您使用的是 serializers.ModelSerializer
,如果该字段是模型字段,那么您可以只提及模型字段的名称。
注意:您可以使用serializers.SerializedMethodField
如果您需要对字段进行一些操作。
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = models.MyModel
fields = ["asset_id", "asset_name", "field_3"]
# You can also use __all__ if you want to include all the fields
# fields = "__all__"
ModelSerializer
的行为与 Django 的 ModelForm 非常相似
关于具有 2 个或更多字段的 Django 序列化程序方法字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47198348/