Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否将django.rest\u framework.serializers.ModelSerializer扩展到模型属性字段?_Django_Django Rest Framework - Fatal编程技术网

是否将django.rest\u framework.serializers.ModelSerializer扩展到模型属性字段?

是否将django.rest\u framework.serializers.ModelSerializer扩展到模型属性字段?,django,django-rest-framework,Django,Django Rest Framework,我使用这个序列化程序查询并返回一些json对象 class MyModelPathSerializer(serializers.ModelSerializer): class Meta(): model = MyModel fields = ('setup', 'path') depth=1 我对返回模型的属性而不是字段很感兴趣 class MyModel(models.Model): setup = models.ForeignKey(Setup, on_

我使用这个序列化程序查询并返回一些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/'

是否有方法修改序列化程序类以便也返回属性?

您可以使用
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
类MyModelPathSerializer(serializers.ModelSerializer):
path=serializers.SerializerMethodField()
类元:
model=MyModel
字段=(“设置”、“路径”)
深度=1
def get_路径(自身、模型_实例):
返回模型\实例路径