我正在尝试使用 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