内联模型表单是否发出 post_save 信号?(django)

Nic*_*s R 5 django inline admin django-models

所以我有两个与外键相关的模型(表)。在管理中,编辑页面显示第一个模型(假设 ModelOne)以及第二个模型 ModelTwo (TabularInline) 的相关实例。

我想要的是在更改第二个模型时执行一些额外的操作。我可以用 ModelTwo 上的 post_save 信号来做到这一点。但是,仅当我从模型自己的编辑页面(即不在 ModelOne 的内联中)保存模型时,才会调用 post_save 信号。

有没有办法在 ModelTwo 的内联表单上附加 post_save 信号?

...作为一种解决方法,我向 ModelTwo 添加了一些自定义验证,无论它是否内联都会被调用),以调用我想要的方法。但是,此设置引起的问题是,如果我创建 ModelOne 的新实例并同时创建 ModelTwo 的实例,我将无法访问关联两个表的新实例的主键(外键)(因为它尚未保存)。主键是我需要的东西。

我还尝试直接向 ModelOne 添加 post_save 信号(以便我可以获得新实例的 PK),但 post_save 信号似乎没有传递 ModelTwo 的数据(为什么要这样做,无论如何?)

那么解决这个问题的方法是什么?内联模型会发出信号吗?有没有办法在保存之前访问新实例的PK?

cet*_*eek 5

模型就是模型。模型在管理界面中用作内联这一事实并没有以任何方式消除它。除非您覆盖其功能,否则所有模型都会发出保存后信号。

以下是保存任何模型时发生的情况。


Eya*_* Ch 5

以上所有内容都是正确的,只是添加更多内容:当您在管理中保存对象(包含内联)时,仅触发内联的“保存后”信号(当然还有内联对象的保存方法)如果您对内联对象进行了一些更改。