使用 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、namemobilecityPerson模型中的字段。我必须使用上面的 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 时刻之一。)