所以我有两个与ForeignKey相关的模型(表)。在管理员中,编辑页面显示第一个模型(假设ModelOne)以及第二个模型ModelTwo(TabularInline)的相关实例。内联模型形式发送post_save信号吗? (django)
我想要的是当第二个模型被改变时执行一些额外的操作。我可以在ModelTwo上使用post_save信号做到这一点。然而,post_save信号仅在我从其自己的编辑页面内保存模型(即不在ModelOne的内联中)时调用。
有没有办法在ModelTwo的内联表单上附加post_save信号?
...作为一种解决方法,我向ModelTwo添加了一些自定义验证,无论它是否内联,都会调用它),以调用我想要的方法。但是,由此设置引起的问题是,如果我正在创建ModelOne的新实例并同时创建ModelTwo的实例,则无法访问与此两个表相关的新实例的主键(外键)它还没有保存)。主键是我需要的东西。
我也尝试添加一个post_save信号ModelOne直接(这样我就可以得到新的实例的PK),但它似乎post_save信号不经过ModelTwo的数据(何必呢,反正?)
那么对此有什么解决方案?内联模型发出信号吗?有没有办法在保存之前访问新实例的PK?
是的,似乎后保存信号只发送时,实际保存的形式,即有新的数据进来或现有的数据已经改变。 – 2010-02-02 13:40:23