我正在尝试使用ModelField来序列化JSONField。我不太确定将什么内容传递给'model_field'kwarg。传递类名不会削减它,因为ModelField似乎直接存储'model_field'并调用方法。
== restapi.py ==
reading_order = ModelField(model_field=JSONField) # Corresponds to a JSONField 'reading_order' in my model.
== rest_framework/fields.py ModelField ==
def field_to_native(self, obj, field_name):
value = self.model_field._get_val_from_obj(obj)
这导致错误,说第一个参数应该是JSONField的一个实例,这是有意义的,因为self.model_field是类定义。如果我将其更改为:
def field_to_native(self, obj, field_name):
value = self.model_field._get_val_from_obj(obj._meta.get_field(field_name), obj)
工作正常。
我不确定这是否是我偶然发现的错误,或者我是否错误地将ModelField实例化。有人可以指出我使用ModelField的正确方法吗?
此致 Abhaya
答案 0 :(得分:0)
相信这是一个文档问题。 ModelField
应该传递一个字段实例,而不是一个字段类,所以你应该像这样实例化模型字段:
reading_order = ModelField(model_field=JSONField())