[Answered ]-Passing kwargs into get_or_create method in Django

2👍

When you do

kwargs = { "reindex": False}
ClassName.objects.get_or_create(**kwargs)

it is actually equivalent to

ClassName.objects.get_or_create(reindex=False)

Thus, since reindex appears not to be a field defined in the model ClassName, you get an error.


BTW, beyond things which appear erroneous, e.g. reindex = **kwargs.pop("reindex"), you should define reindex as one of the fields of your model. But I admit that I answer blindly, because to me, your class definition cannot work like so. If one assumes that reindex is an integer field, you could do

class ClassName(models.Model):
    reindex = models.IntegerField(null=True)

    def save(self, *args, **kwargs):
        super(ClassName, self).save(*args, **kwargs)
        if "reindex" in kwargs:
            People.objects.create()

Leave a comment