#django #m2m
#django #m2m
Вопрос:
class SparePart(models.Model):
name = models.CharField(max_length=255)
description = models.TextField(blank=True, null=True)
class SparePartOrderRelation(models.Model):
sparepart = models.ForeignKey(SparePart)
order = models.ForeignKey('SparePartOrder')
class SparePartOrder(models.Model):
spareparts = models.ManyToManyField(SparePart, through=SparePartOrderRelation)
def signaltest(**kwargs):
print kwargs['action']
m2m_changed.connect(signaltest, sender=SparePartOrder.spareparts.through, weak=False, dispatch_uid='signaltest')
(упрощенные модели для наглядности)
Почему m2m_changed
сигнал не отправляется и signaltest
не вызывается? когда я сохраняю SparePartOrder
? Я попытался sender=
заменить почти каждой комбинацией (возможных) ссылок на модель m2m ( SparePartOrder.spareparts
и SparePartOrderRelation
т.д.)
Помощь приветствуется!
Приветствия
Комментарии:
1. Как насчет изменения подписи на
def signaltest(sender, instance, *args, **kwargs):
?2. @karthikr, к сожалению, ничего не меняет. Есть ли способ отладки сигналов Django?
3. Забавно, что вы спрашиваете — я отлаживаю django-сигнал, с которым я сталкиваюсь в своем коде, пока мы говорим 🙂 Я использую
import pdb;pdb.set_trace()
и перемещаюсь шаг за шагом.