当模型的 ManyToMany 字段更新并发送 m2m_changed 信号时,我将在 pk_set 参数中获取该关系的每个项目,以前相关的项目和新项目。这是正确的行为吗?我期望只有新项目或添加到关系中的多个项目出现在 pk_set 中。
如果这是预期的行为,除了使用 post_add 信号并将已经与模型关联的项目列表与传入列表进行比较之外,是否有更好的方法来仅将新项目添加到关系中?
编辑:似乎 pre_add 中没有与 ManyToMany 字段相关的项目,那么所有项目都在 post_add 上。
编辑 2:好的,所以在添加项目列表之前清除了多对多关系,接收 pre_clear 和 post_clear 操作。不知道我应该如何获得一组项目如何变化的差异。