Как построить объект после сериализации в Django - PullRequest
1 голос
/ 16 марта 2019

Я сериализирую экземпляр модели следующим образом.

serialized_object = serializers.serialize ('json', [track,])

выход

   [{"model": "blog.track", "pk": null, "fields": {"album": null, "name": "Song 1", "lyrics": "", "song": "Z.mp3", "url_download": null, "length": "00:00:12"}}]

Затем я сохраняю сериализованный объект, чтобы в конце некоторых задач я мог сохранить его в базе данных. Мой вопрос заключается в том, как перестроить экземпляр модели из сериализованной модели. А как я могу получить поля сериализованной модели в виде?

Изучение немного больше и чтение документации Django, которую можно десериализовать и сохранить таким образом

for obj in serializers.deserialize("json", serialized_object):
    print(obj.name)
    obj.save ()

однако я хотел бы получить значения этого объекта, но при попытке его возникает следующая ошибка

AttributeError: 'DeserializedObject' object has no attribute 'name'

Ответы [ 2 ]

3 голосов
/ 16 марта 2019

Вы получаете эту ошибку, потому что в документации указано, что ваш объект обернут в DeserializedObject, поэтому внесите следующее изменение.

print (obj.object.name)
1 голос
/ 16 марта 2019

Если вы используете django rest framework, вам не нужно конвертировать обратно в объект. Вы можете использовать create или update метод для класса сериализатора, как упомянуто здесь для создания или обновления в db

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...