I am aware that when using MyModel.objects.create in Django, it is possible to pass in a dictionary with keys which correspond to the model fields in MyModel. This is explained in another question here: Can a dictionary be passed to django models on create?
However, I am trying to pass in a dictionary which has more keys than there are model fields - in other words, some of the keys are not used in the creation of the object. Is it possible to do this in some way? For example:
data_dict = {'key1': value1,'key2': value2,'key3': value3,
}class MyModel(models.Model):key1 = models.SomeField()key2 = models.SomeField()m = MyModel.objects.create(**data_dict)
When I try this, I get an error telling me that "'key3' is an invalid keyword argument for this function". Am I passing the dictionary in incorrectly? Is there a different way to pass it to the model that means the model doesn't have to use all of the arguments? Or will I simply have to specify each field manually like this:
m = MyModel.objects.create(key1 = data_dict['key1'],key2 = data_dict['key2'],
)