【发布时间】:2013-08-26 03:13:18
【问题描述】:
我想序列化一个模型,但想包含一个额外的字段,该字段需要对要序列化的模型实例进行一些数据库查找:
class FooSerializer(serializers.ModelSerializer):
my_field = ... # result of some database queries on the input Foo object
class Meta:
model = Foo
fields = ('id', 'name', 'myfield')
这样做的正确方法是什么?我看到序列化程序的you can pass in extra "context",是在上下文字典中传递附加字段的正确答案吗?
使用这种方法,获取我需要的字段的逻辑将不会与序列化程序定义自包含,这是理想的,因为每个序列化实例都需要my_field。在 DRF 序列化程序文档的其他地方,says“额外字段可以对应于模型上的任何属性或可调用”。我说的是“额外字段”吗?
我是否应该在Foo 的模型定义中定义一个返回my_field 值的函数,并在序列化程序中将my_field 连接到该可调用对象?那是什么样子的?
如有必要,很高兴澄清问题。
【问题讨论】:
标签: django rest django-rest-framework