Метода from_json
из mongoengine
ModelClass
используется для:Невозможно сохранить существующую модель экземпляр, созданный с помощью метода _from_json
Преобразования JSON данных в несохраненный экземпляр документа
Если я отправить на сервере JSON с некоторыми изменили поля и попытались конвертировать в несохраненный экземпляр документа, они не отслеживают _changed_fields
в модели, например _changed_fields
всегда пуст.
data = self.request.data # json representation of object
model_instance = SomeModel.from_json()
print(model_instance._changed_fields) # get empty list
Как я знаю .save
метод ModelInstance только сэкономить измененные поля и проверить его в _changed_fields
собственности. Поэтому, если это свойство всегда пустое - невозможно сохранить экземпляр модели, созданный с помощью метода from_json
.
Вопрос - как я могу сохранить экземпляр модели, созданный из json?
Btw, этот вопрос для mongoengine, а не стандартный Django ORM. Проблема - '.save()' метод dont actualy SAVE model (например, im описать на мой вопрос) Это происходит cuz '.save()' метод сохранять только измененные поля и отслеживать эти изменения с помощью атрибута _changed_fields' в модели. И да, я могу просто перейти к созданию модели ** kwargs, но в этом случае я не могу разыменовать ReferenceField. В вашем примере _changed_fields не будет пустым в любое время (если вы измените его или нет), если вы попытаетесь сохранить модель с эталонным полем в ней. –