У меня были подобные проблемы, поэтому я взял некоторый код, который я сделал раньше, и улучшил его. На самом деле это закончилось в полноценной платформе сериализации python SpitEat. Вы можете скачать пробную версию here. Документация не очень хорошо еще, так вот код, который вы должны использовать для сериализации вещи:
>>> from spiteat.djangosrz import DjangoModelSrz #you should actually put spiteat in your path first
>>> Model1Srz = DjangoModelSrz.factory(Model1)
>>> srz_instance = Model1Srz(some_obj_you_want_to_serialize)
>>> srz_instance.spit()
... {
... 'pk': <a_pk>,
... 'id': <an_id>,
... 'name': <a_name>,
... 'child': {
... 'pk': <another_pk>,
... 'id': <another_id>,
... 'field1': <a_value>,
... 'field2': <another_value>
... }
... }
Таким образом, полные, глубокие сериализации. Вы можете настраивать вещи (выбирать, какие поля включены, и т. Д.) Но это еще не проверено и не задокументировано). Документ станет лучше в ближайшие дни, так как код будет, поэтому вы можете начать использовать его, не опасаясь, что поддержки не будет!
Конечно, когда вы еще ваш объект сериализовать, просто использовать json
как:
>>> import json
>>> json_srz = json.dumps(srz_instance.spit())
И у вас есть то, что вы пришли!
, пожалуйста, рабочая ссылка? :)) – Broccoli