Найти - Пользователи
Полная версия: Django signals
Начало » Django » Django signals
1
Gorazio
Есть модель Students, к ней хочу приклеить обработчик сигнала создания записи. Вот что у меня получилось:
#models.py
...
class Students(models.Model):
fio = models.CharField(max_length=50)
bdate = models.DateField()
tickno = models.CharField(max_length=10)
group = models.ForeignKey(Groups,blank=True, null=True,related_name='gruppa')
def __unicode__(self):
return self.fio

class ChangeLog(models.Model):
model = models.CharField(max_length=15,blank=True, null=True)
action = models.CharField(max_length=25,blank=True, null=True)

def ModelChangeLog(sender, instance, signal, *args, **kwargs):
if 'created' in kwargs:
if kwargs['created']:
m = ChangeLog(model = sender.__name__,
action = "Создание записи %s" % instance.id)
m.save()
post_save.connect(ModelChangeLog, sender=Students)
Немогу понять почему ModelChangeLog срабатывает дважды для каждой записи(каждый раз при создании новой записи в модели Students - создается две записи в ChangeLog):
>>>q = ChangeLog.objects.all()
... for i in q:
... print i.model, i.action
...
Students Создание записи 38
Students Создание записи 38
Подскажите пожалуйста что не так, и если можно - киньте линк где про сигналы почитать.
Заранее спасибо!
mks
Вероятно это вам поможет: https://docs.djangoproject.com/en/1.3/topics/signals/#preventing-duplicate-signals
Gorazio
mks
Вероятно это вам поможет: https://docs.djangoproject.com/en/1.3/topics/signals/#preventing-duplicate-signals
Спасибо за линк! Хотя я уже раз 10 читал раздел с сигналами, только пройдя по вашей ссылке я наконец-то в этом разобрался =)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB