有这些模型定义和两者之间的关系:
class Car(models.Model):
description = models.CharField(max_length=35)
def save(self, **kwargs):
invalidate_cache()
super().save(**kwargs)
def delete(self, **kwargs):
invalidate_cache()
return super().delete(**kwargs)
class Passenger(models.Model):
car = models.ForeignKey(Car, related_name='passengers')
我已经在Car模型上定义了自定义save
和delete
,因为当修改汽车实例时,我必须执行一些额外的操作,特别是我需要使缓存无效。
我的疑问是:创建/更新/删除相关模型会调用这些自定义方法吗?
我会试着更清楚:
c1 = Car(description='super fast car')
p = Passenger(car=c1)
显然,c1
的创建会调用Car.save
,但 Passenger 的实例p
的创建是否会调用Car.save
?
从我的测试看起来似乎是这样,但我想更确定它不仅仅是一个特定的情况,这种情况一直发生在Django模型处理周期中(我找不到具体的文档)。