Py学习  »  Django

通过Django create方法传递save参数

Johnny Metz • 4 年前 • 373 次点击  

假设我有以下Django模型,它覆盖save方法:

class Person(models.Model):
    name = models.CharField(max_length=50)

    def save(self, lock=False, *args, **kwargs):
        if lock:
            print("LOCKING OBJECT...")
        super().save(*args, **kwargs)

我知道我可以创造一个人 lock

steve = Person(name="Steve")
steve.save(lock=True)
# LOCKING OBJECT...

不过,我真的很喜欢使用 create 方法,因为它更具可读性:

Person.objects.create(name="Michelle")

我怎么能通过 使用后一种方法?以下操作不起作用:

Person.objects.create(name="Michelle", lock=True)
# TypeError: Person() got an unexpected keyword argument 'lock'
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53323
 
373 次点击