2017-04-18 72 views
0

我发现自己在几个模型中说X,YZ的情况下,我想知道他们在什么时候发生任何更改,即任何创建,更新,删除,以便我可以执行另一个动作。我搜索了互联网,但我得到的只是实例审计历史记录的库。有没有什么办法来完成这个内置的Django,甚至是一个自定义的解决方案/ lib将不胜感激。检测到对Django模型所做的任何更改

我现在的想法是让这些模型发出post_save信号并收听。

+2

您不需要“让模型发出”信号。模型自动执行。 [文档说](https://docs.djangoproject.com/en/1.11/ref/signals/#pre-save):“这是在模型的save()方法开始时发送的。” 'post_save'和其他一样。你只需要听信号。 – C14L

回答

1

Model signals已经发送了,而不必告诉它们,只是作为Django模型的一部分。您可以将listeners设置为已发送的信号。

pre_deletepost_delete将覆盖您的删除案例; pre_savepost_save将处理您的更新/创建。 post_save发送一个created参数,如果创建了新记录,则为True,否则发送False

相关问题