Использование сигнала m2m_changed на модели со связанным менеджером

Я могу установить сигнал m2m_changed на одной стороне отношения, но не на обеих.

например:

Это работает:

class Topping(models.Model):
    # ...
    pass

class Pizza(models.Model):
    # ...
    toppings = models.ManyToManyField(Topping)

from django.db.models.signals import m2m_changed

def toppings_changed(sender, **kwargs):
    # Do something
    pass

m2m_changed.connect(toppings_changed, sender=Pizza.toppings.through)

Но следующее дает мне ошибку AttributeError: type object 'Topping' has no attribute 'pizza_set', даже если Topping.pizza_set.all() или Topping.pizza_set.through успешно выполняется в оболочке:

class Topping(models.Model):
    # ...
    pass

class Pizza(models.Model):
    # ...
    toppings = models.ManyToManyField(Topping)

from django.db.models.signals import m2m_changed

def toppings_changed(sender, **kwargs):
    # Do something
    pass

m2m_changed.connect(toppings_changed, sender=Topping.pizza_set.through)
Вернуться на верх