我正在使用此序列化程序查询并返回一些json对象。
class MyModelPathSerializer(serializers.ModelSerializer):
class Meta():
model = MyModel
fields = ('setup', 'path')
depth=1
虽然返回模型的属性而不是字段很有趣。
class MyModel(models.Model):
setup = models.ForeignKey(Setup, on_delete=models.CASCADE)
@property
def path(self):
return '/some/path/'
是否可以修改序列化程序类,以便还返回属性?
答案 0 :(得分:1)
您可以使用SerializerMethodField
返回模型实例的属性。这是一个只读字段。
class MyModelPathSerializer(serializers.ModelSerializer):
path = serializers.SerializerMethodField()
class Meta:
model = MyModel
fields = ("setup", "path")
depth = 1
def get_path(self, model_instance):
return model_instance.path
https://www.django-rest-framework.org/api-guide/fields/#serializermethodfield