我认为可以通过覆盖signal
中的save()
方法来完成Model
可以完成的任何操作。
如果是这样,为什么我们需要信号?我找不到何时使用signal
。
由于
答案 0 :(得分:0)
我认为这可能会澄清你的怀疑:
About Django signals and override save method
基本上,人们会覆盖保存方法,以便在执行保存之前或之后操纵模型中的数据,精确地完成信号以覆盖该方案的更多可能性而无需更改。
答案 1 :(得分:0)
在许多情况下,使用信号至关重要。由于您要与overide save()方法进行比较,因此本示例将为您提供一个使用post_save信号的方案。 使用post_save信号,您可以在信号之前访问存储在数据库中的所有数据,即它还将为您提供由数据库存储的数据的自动生成ID (无论是mysql,postgresql,mongodb等。 )。 如果您使用单个save()函数保存两个模型并希望将两个模型与相同的自动生成的PK链接,则可以使用此方法。