Django REST框架:向ModelSerializer添加附加字段

我希望序列化模型,但希望包含一个额外字段,该字段需要对要序列化的模型实例执行一些数据库查找:

类序列化程序(serializers.ModelSerializer):
my_字段=…#对输入Foo对象的某些数据库查询的结果
类元:
model=Foo
字段=(’id’,’name’,’myfield’)

正确的方法是什么?我知道你可以额外及格;上下文“;对于序列化程序,在上下文字典中传入附加字段的正确答案是否正确

使用这种方法,获取所需字段的逻辑将不会与序列化程序定义自包含,因为每个序列化实例都需要myu字段。在DRF序列化程序文档的其他地方,它说;额外字段可以对应于模型上的任何属性或可调用字段;。是”;“额外字段”;我在说什么

我是否应该在Foo的模型定义中定义一个返回my_字段值的函数,并在序列化程序中将我的_字段连接到该可调用项?那是什么样子的

如果有必要,我很乐意澄清这个问题

我认为SerializerMethodField就是您要寻找的:

类序列化程序(serializers.ModelSerializer):
my_field=serializers.SerializerMethodField(’is_named_bar’))
def被命名为工具栏(self,foo):
返回foo.name=="酒吧;
类元:
model=Foo
字段=(’id’,’name’,’my_字段’)

http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield

发表评论