Использование сигнала 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)