代码之家  ›  专栏  ›  技术社区  ›  Johnny Metz

通过Django create方法传递save参数

  •  0
  • Johnny Metz  · 技术社区  · 5 年前

    假设我有以下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'
    
    0 回复  |  直到 5 年前