0

具有这些模型定义以及两者之间的关系:

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 模型上定义了 customsavedelete,因为当汽车实例被修改时,我必须执行一些额外的操作,特别是我需要使缓存无效。

我的疑问是:创建/更新/删除相关模型会调用这些自定义方法吗?

我会尽量说清楚:

c1 = Car(description='super fast car')
p = Passenger(car=c1)

显然是c1调用的创建,但是乘客Car.save实例的创建会p调用还是不调用?Car.save

从我的测试来看似乎是这样,但我想更确定这不仅仅是一个特定的案例,而且在 Django 模型处理周期中一直发生这种情况(我找不到关于此的特定文档)。

4

0 回答 0