在给定该模型实例的json表示的情况下,django更新模型实例的最佳方法是什么。
正在使用反序列化正确的方法吗?那里有教程吗?
答案 0 :(得分:11)
最好的方法是使用支持将模型实例序列化为JSON的existing Django applications之一。
在任何一种情况下,如果您将JSON对象解析为Python字典,您基本上可以直接使用QuerySet.update()
方法。
所以,假设你得到一个字典,其中所有的键都映射到模型属性,它们代表你想要更新的值,你可以这样做:
updates = { # Our parsed JSON data
'pk': 1337,
'foo': 'bar',
'baz': 192.05
}
id = updates.pop('pk') # Extract the instance's ID
Foo.objects.filter(id=id).update(**updates) # Update the instance's data