Django:"覆盖save()"之间的区别是什么?和"使用保存信号"?

时间:2018-02-12 13:18:02

标签: django django-models django-signals

我认为可以通过覆盖signal中的save()方法来完成Model可以完成的任何操作。

如果是这样,为什么我们需要信号?我找不到何时使用signal

由于

2 个答案:

答案 0 :(得分:0)

我认为这可能会澄清你的怀疑:

About Django signals and override save method

基本上,人们会覆盖保存方法,以便在执行保存之前或之后操纵模型中的数据,精确地完成信号以覆盖该方案的更多可能性而无需更改。

答案 1 :(得分:0)

在许多情况下,使用信号至关重要。由于您要与overide save()方法进行比较,因此本示例将为您提供一个使用post_save信号的方案。 使用post_save信号,您可以在信号之前访问存储在数据库中的所有数据,即它还将为您提供由数据库存储的数据的自动生成ID (无论是mysql,postgresql,mongodb等。 )。 如果您使用单个save()函数保存两个模型并希望将两个模型与相同的自动生成的PK链接,则可以使用此方法。