django - Django:Pre_Save 信号期间的 Many2Many 关系?
问题描述
假设我们有以下类:
类“配置”
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
for的类/方法element
。
所以,我去管理应用程序,创建一个类型的对象,Config
在屏幕上选择我的节点并点击保存。现在,系统应该调用一个类/方法,传递节点并element
使用uuid
. 这是行不通的,因为映射表中的 M:N 关系在Class
并且Nodes
还没有正确的条目(因为它是pre_save
)。我想避免post_save
,因为nodes
属性需要允许Null
值。
任何想法都非常感谢。
谢谢,塞巴斯蒂安
解决方案
我正在使用动作m2m_changed
信号post_add
。适合我的用例。
推荐阅读
- angular6 - 如何在Angular 6的组件类中使数组动态化
- c# - 用C#实现多路复用器的硬件锁
- php - 用 laravel 删除 mysql
- c# - 如何在 c# 中的 datagridview 中使 datagridview 的某些行只读和其他可编辑
- javascript - 如何在 tensorflow.js 中广播矩阵/向量点积
- php - 在下拉菜单 PHP HTML 中保留选定的值
- design-patterns - 解释器模式可以像解析配置文件一样简单吗?
- apache - 如何使 apache 中的重写模块工作?
- javascript - 如何查看初始值 .Select/Option
- jenkins - Jenkins BlueOcean 缺少插件参数作为“通过 SSH 发送构建工件”