ModelField를 사용하여 JSONField를 직렬화하려고합니다. 'model_field'kwarg에 전달할 것으로 예상되는 것이 무엇인지 확실하지 않습니다. ModelField가 'model_field'를 직접 저장하고 메서드를 호출하는 것처럼 보이기 때문에 클래스 이름을 전달하면 모델 이름이 잘리지 않습니다.DRF ModelField를 올바르게 인스턴스화
== 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)
이렇게하면 첫 번째 인수는 self.model_field가 클래스 정의이므로 JSONField에 대한 인스턴스 여야한다는 오류가 발생합니다. 변경 한 경우 :
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
가이 문제를 저장 직면, 작업 솔루션이있다? – Tzach
위의 두 번째 발췌 문장은 정상적으로 작동합니다. – abhaga