Я сериализовал мою модель Django:
serializers.serialize(MyModel.objects.filter(color="Red"))
и получил этот вывод:
<object model="example.example" pk="133">
<field name="name" type="CharField">John Smith</field>
<field name="color" type="CharField">Red</field>
... #more fields
</object>
Итак, вы можете видеть, что у меня есть pk = "133":
И теперь я хочу снова десериализовать это в модель django и сохранить () в базу данных, но с другим pk, поэтому он должен создать новую запись с новым id.
Я пытаюсь разобрать XML и изменить pk, используя:
- pk = "" - парсер жалуется, что pk должно быть целым числом
- pk = "- 1" или "0" - фактически создает запись с id / pk = "1" или "0"
- pk = "None" или None или "null" - синтаксический анализатор жалуется, что pk должно быть целым числом
- удалить атрибут "pk" - парсер жалуется, что атрибут является обязательным
В статье Django Serialization приведен пример десериализации из JSON с нулевым "pk".
# You can easily create new objects by deserializing data with an empty PK
# (It's easier to demo this with JSON...)
>>> new_author_json = '[{"pk": null, "model": "serializers.author", "fields": {"name": "Bill"}}]'
>>> for obj in serializers.deserialize("json", new_author_json):
... obj.save()
(на самом деле это для 0,96, но я предполагаю, что это должно работать для 1 *. Также)
Так что в JSON pk может иметь значение null, но в XML он жалуется. Как установить pk в ноль для XML?
Спасибо