使用 json 创建模型对象,其中所有键都不是模型的字段
Create a model object using the json where all keys are not model's fields
我有一个模型如下:
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 创建模型实例,其中所有键都不是模型中的字段。
除非您知道您的数据与您的模型相同"shape"(即具有相同的字段),否则您最好明确地写出来:
Person.objects.create(name=data['name'], mobile=data['mobile'], city=data['city'])
(这是 explicit is better than implicit 时刻之一。)
我有一个模型如下:
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 创建模型实例,其中所有键都不是模型中的字段。
除非您知道您的数据与您的模型相同"shape"(即具有相同的字段),否则您最好明确地写出来:
Person.objects.create(name=data['name'], mobile=data['mobile'], city=data['city'])
(这是 explicit is better than implicit 时刻之一。)