Django Rest Frame API:ModelSerializer中的其他字段

时间:2014-06-13 19:54:47

标签: python django django-rest-framework

我可以向ModelSerializer子类添加其他字段吗?

通过说'附加字段',我的意思是某些字段不属于数据库中的任何模型,尝试将这些字段映射到现有模型字段的任何工作都将失败。我需要包含这些字段的原因是出于设计目的。我需要这些字段的值来进行验证并最终创建一个新实例。

我知道ModelSerialzer中有一个名为'context'的kwarg。通过将所有附加信息放入“上下文”,它将起作用。但是,我想知道是否可以创建其他字段?

我尝试添加'write_only = True',但这不起作用。唯一的左选项是覆盖默认的restore_object方法,用我的意愿创建实例。

还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

由于您没有发布任何代码,我只能给您一个通用答案,但如果我理解正确,您希望将自定义字段添加到不属于您的模型的ModelSerializer中......

在DSF中,您可以非常谨慎地进行此操作(read here):

在这种情况下,您只需要一个简单的只读字段,所以只需使用:

custom_field = Field(source='get_whatever')

如果在此之后进行验证,请阅读DRF指南here