我希望了解如何为现有的Django模型对象设置多个字段的最佳方法。 我有一个包含许多字段的模型:
class Foo(models.Model):
Field1 = models.CharField(max_length=40)
Field2 = models.CharField(max_length=40)
Field3 = models.CharField(max_length=40)
etc...
另外,我有一个字典,其中包含特定记录的某些字段的更改:
data = {'field1': 'value1', 'field5': 'value5', 'field7': 'value7'}
record = Foo.objects.get(pk=1)
我希望将record
中的字段设置为data
中的新值。有什么最好的方法可以做到这一点吗?是否有一种方法可以解包字典并修改记录中的适当字段?我意识到我可以使用以下方式迭代字典:
for k, v in data.iteritems():
setattr(entry, k, v)
entry.save()
我认为有一种方法可以调用类似以下的内容:
entry.set_values(**data)
有类似的东西吗?还是我走错了方向?
Foo.objects.filter(pk=1).update(**date); Foo.objects.get(pk=1).save()
。 - Matthew Schinckel