Django:Pre_Save信号期间的Many2Many关系?

时间:2018-10-10 20:10:15

标签: django django-forms django-mptt

假设我们有以下课程:

“配置”类

class Config(models.Model):
    name = models.CharField(max_length=40, editable=True, blank=False, null=False)
    nodes = models.ManyToManyField(HierarchyNode_MPTT)
    element = models.ForeignKey(ForecastConfigurationLayout, on_delete=models.PROTECT, default=None)

nodes属性表示M:N关系。我想基于elements的组合来默认nodes属性。因此,在保存过程中(最好是pre_save),我需要将所有节点传递给为uuid返回element的类/方法。

因此,我转到管理应用程序,创建类型为Config的对象,在屏幕上选择我的节点,然后单击保存。现在,系统应该调用类/方法,传递节点并用element更新uuid。由于ClassNodes之间的映射表中的M:N关系尚不具有正确的条目(因为它是pre_save),因此此操作无效。我想避免使用post_save,因为这样nodes属性需要允许Null值。

任何想法都值得赞赏。

谢谢, 塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

我在m2m_changed动作中使用post_add信号。我的用例工作正常。