我的问题类似于在保存对象时询问有关处理M2M字段的其他一些问题,例如。
Django accessing ManyToMany fields from post_save signal
Django: Using signals to save a ManyToMany field
基本上,为了使用M2M字段,您需要倾听m2m_changed
而不是post_save
。
我遇到的问题是,我希望仅在创建新对象时才会发生我的操作 - post_save
获得created
参数,但就我而言告诉我m2m_changed
没什么相似之处,当m2m_changed
信号被触发时,对象已被保存并被赋予PK,所以没有办法告诉信号处理程序它是否是新创建的对象或已更新的现有对象。
这有什么办法吗?
答案 0 :(得分:0)
解决方法: - 您可以将post_save方法与分配给模型的变量一起使用。例如,您可以在创建对象时将变量设置为“created”。然后,您可以告诉模型,只有在将该变量设置为创建时才能执行某些操作。执行操作后,您可以将该变量设置为“已更新”。然后操作将不会在处理程序中触发。
OR