我的模型如下:
class Person(models.Model):
name = model.CharField(max_length = 255)
mobile = model.IntegerField(null = True)
city = model.CharField(max_length = 255)
现在我需要使用json创建一个模型对象,如下所示:
data = { "name" : "John",
"age" : 31,
"city" : "New York",
"mobile" : 1234432156,
"address" : "xyz" }
在上述json中,name
,mobile
,city
是Person
模型中的字段。我必须使用上述json创建模型对象。我是这样的:
Person.objects.create(**data)
但是它抛出一个错误,说'age' is invalid keyword argument for this function
。我的理解是,由于模型中没有年龄字段,因此会引发错误。
如何使用这样的json创建模型实例,其中所有键都不是模型中的字段。
答案 0 :(得分:1)
除非您知道数据与模型具有相同的“形状”(即具有相同的字段),否则最好将其明确写出:
Person.objects.create(name=data['name'], mobile=data['mobile'], city=data['city'])
(这是那explicit is better than implicit个时刻之一。)