【发布时间】:2012-06-03 15:28:18
【问题描述】:
我知道在 Django 中使用 MyModel.objects.create 时,可以传入一个字典,其中的键对应于 MyModel 中的模型字段。此处的另一个问题对此进行了解释:Can a dictionary be passed to django models on create?
但是,我试图传入一个字典,它的键比模型字段的数量多 - 换句话说,一些键没有用于创建对象。有可能以某种方式做到这一点吗?例如:
data_dict = {
'key1': value1,
'key2': value2,
'key3': value3,
}
class MyModel(models.Model):
key1 = models.SomeField()
key2 = models.SomeField()
m = MyModel.objects.create(**data_dict)
当我尝试此操作时,我收到一条错误消息,告诉我“'key3' 是此函数的无效关键字参数”。我是否错误地传递了字典?是否有不同的方法将其传递给模型,这意味着模型不必使用所有参数?还是我只需像这样手动指定每个字段:
m = MyModel.objects.create(
key1 = data_dict['key1'],
key2 = data_dict['key2'],
)
【问题讨论】:
-
你必须手动指定每个字段。
-
你可以指定更少但不能更多
标签: python django django-models dictionary