モデルの ManyToMany フィールドが更新され、m2m_changed シグナルが送信されると、pk_set 引数のその関係について、以前に関連したアイテムと新しいアイテムのすべてのアイテムを取得しています。これは正しい動作ですか?リレーションシップに追加された新しいアイテムまたは複数のアイテムのみが pk_set に存在することを期待していました。
それが予想される動作である場合、post_add シグナルを使用して、モデルに既に関連付けられているアイテムのリストを着信リストと比較する以外に、関係に追加される新しいアイテムのみを取得するより良い方法はありますか?
編集: pre_add の ManyToMany フィールドに関連するアイテムがないように見えますが、すべてのアイテムが post_add にあります。
編集 2:では、多対多の関係は、アイテムのリストが追加される前にクリアされ、pre_clear および post_clear アクションを受け取ります。アイテムのセットがどのように変更されたかの差分を取得する方法がわかりません。