Django rest framework 正确实例化DRF模型字段

Django rest framework 正确实例化DRF模型字段,django-rest-framework,Django Rest Framework,我正在尝试使用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. =

我正在尝试使用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_字段是类定义。如果我将其更改为:

def field_to_native(self, obj, field_name):
    value = self.model_field._get_val_from_obj(obj._meta.get_field(field_name), obj)
它很好用

我不确定这是我偶然发现的一个bug,还是我实例化ModelField时出错了。有人能告诉我使用ModelField的正确方法吗

问候,,
阿卜哈亚认为这是一个问题
ModelField
应该传递一个字段实例,而不是字段类,因此您应该像这样实例化模型字段:

 reading_order = ModelField(model_field=JSONField())

相信这是一个文档问题
ModelField
应该传递一个字段实例,而不是字段类,因此您应该像这样实例化模型字段:

 reading_order = ModelField(model_field=JSONField())

这是正确的方向。似乎我们需要从模型中提取字段实例,否则Django会抛出错误。如果你更新你的答案,我会接受。这是正确的方向。似乎我们需要从模型中提取字段实例,否则Django会抛出错误。如果你更新你的答案,我会接受。面对保存问题,是否有有效的解决方案?上面的第二个片段可以。面对保存问题,是否有有效的解决方案?上面的第二个片段可以。