2017-01-24 18 views
0
from django.db import models 

class Reporter(models.Model): 
    pass 

class Article(models.Model): 
    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE, null=True) 

С приведенными выше моделями, какой сигнал следует прослушивать, если я хочу знать, когда статья добавлена ​​в репортера?Какой сигнал слушать новые отношения «многие-к-одному»?

>>> new_article = Article() 
>>> new_reporter = Reporter() 
>>> new_reporter.article_set.add(new_article) 

Я попытался как m2m_changed и post_save, но ни работ

from django.db.models.signals import m2m_changed, post_save 
from django.dispatch import receiver 

@receiver(m2m_changed) 
def m2m_add(sender, instance, **kwargs): 
    print "m2m_add triggered!" 

@receiver(post_save) 
def post_save_add(sender, instance, **kwargs): 
    print "post_save_add triggered!" 

ответ

1

Подключение к post_save из Article, но вы должны call add with bulk=False:

new_reporter.article_set.add(new_article, bulk=False) 
# will not use update and call save on article instance 
+0

Пытался что, ничего не срабатывает. –

+0

Извините, я неправильно понял, что как «ManyToMany», обновил свой ответ. – schwobaseggl

+0

Это, однако, не существует, так или иначе, чтобы слушать сигналы при вызове 'add' с' bulk = True'? –