Django signal m2m_changed not triggered

Недавно я начал использовать сигналы в своем проекте Django (v. 1.3), и все они работают нормально, за исключением того, что Я просто не могу понять, почему в моей модели никогда не срабатывает сигнал m2m_changed. Экземпляр раздела редактируется путем добавления / удаления встроенных экземпляров PageChild в форме администратора django.

Я попытался зарегистрировать функцию обратного вызова любым способом, как описано в документации, но не получил никакого результата.

Выдержка из моего 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)

Я упустил что-то очевидное?

12
задан user543424 24 June 2011 в 05:40
поделиться