私は最近Djangoプロジェクト(v。1.3)でシグナルを使用し始めましたが、それ以外は正常に動作します。 m2m_changedシグナルが私のモデルでは決して引き起こされない理由はわかりません。 Sectionインスタンスは、Django管理フォームのPageChildインラインインスタンスを追加/削除することによって編集されます。Djangoシグナルm2m_changedがトリガーされていません
ドキュメントに記載されているようにコールバック関数を登録しようとしましたが、結果が得られませんでした。私のmodels.pyから
抜粋
from django.db import models
from django.db.models.signals import m2m_changed
class Section(models.Model):
name = models.CharField(unique = True, max_length = 100)
pages = models.ManyToManyField(Page, through = 'PageChild')
class PageChild(models.Model):
section = models.ForeignKey(Section)
page = models.ForeignKey(Page, limit_choices_to = Q(is_template = False, is_background = False))
@receiver(m2m_changed, sender = Section.pages.through)
def m2m(sender, **kwargs):
print "m2m changed!"
m2m_changed.connect(m2m, sender = Section.pages.through, dispatch_uid = 'foo', weak = False)
私は明らかに何かが足りないのですか?
あなたはこれを把握できましたか?同じ答えを探しています。 –
これは修正されました(1.6) – nima
別の信号受信機からコードをコピー&ペーストするときに、関数名を更新するのを忘れて、そのうちの1つだけが実行されることがあります。 – freb