Форум сайта python.su
Есть модель 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)
>>>q = ChangeLog.objects.all()
... for i in q:
... print i.model, i.action
...
Students Создание записи 38
Students Создание записи 38
Офлайн
Вероятно это вам поможет: https://docs.djangoproject.com/en/1.3/topics/signals/#preventing-duplicate-signals
Офлайн
mksСпасибо за линк! Хотя я уже раз 10 читал раздел с сигналами, только пройдя по вашей ссылке я наконец-то в этом разобрался =)
Вероятно это вам поможет: https://docs.djangoproject.com/en/1.3/topics/signals/#preventing-duplicate-signals
Отредактировано (Янв. 23, 2012 19:50:43)
Офлайн