Recientemente comencé a usar señales en mi proyecto Django (v. 1.3) y todas funcionan bien, excepto que No puedo entender por qué la señal m2m_changed nunca se activa en mi modelo. La instancia de la Sección se edita agregando/eliminando instancias en línea de PageChild en un formulario de administrador django.señal Django m2m_changed no activado
He intentado registrar la función de devolución de llamada de cualquier manera como se describe en la documentación, pero no obtengo ningún resultado.
extracto de mi 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)
Me estoy perdiendo algo obvio?
¿Dónde puedes resolver esto? Buscando la misma respuesta. –
Esto se soluciona ahora (1.6) – nima
A veces, cuando copio y pego código de otro receptor de señal, olvido actualizar el nombre de la función y solo se ejecuta uno de ellos. – freb