如何使用字典保存django对象?

sha*_*pan 4 django django-models

有没有办法可以使用字典保存模型

因为这工作正常,

p1 = Poll.objects.get(pk=1)

p1.name = 'poll2'
p1.descirption = 'poll2 description'

p1.save()
Run Code Online (Sandbox Code Playgroud)

但如果我有{'name'字典:'poll2','description:'poll2 description'}

有没有一种简单的方法可以将这样的字典直接保存到民意调查

小智 22

您可以打开字典,使其键和值像命名参数一样:

data_dict = {'name': 'foo', 'description': 'bar'}

 # This becomes Poll(name='foo', description='bar')
 p = Poll(**data_dict)
 ...
 p.save()
Run Code Online (Sandbox Code Playgroud)


Dan*_*man 22

drmegahertz的解决方案适用于从头开始创建新对象的情况.但是,在您的示例中,您似乎想要更新现有对象.您可以通过访问__dict__每个Python对象具有的属性来执行此操作:

p1.__dict__.update(mydatadict)
p1.save()
Run Code Online (Sandbox Code Playgroud)