2014-11-24 28 views
6

models.py:>Django的信號不起作用

class Aval(models.Model): 
    cliente = models.ForeignKey(Cliente) 
    salao = models.ForeignKey(Salao) 
    rate = models.IntegerField(choices=RATE, default=5) 
    criacao = models.DateTimeField(blank=True, null=True, auto_now=True) 
    comentario = models.TextField(max_length=400, blank=True, null=True, default=None) 
    aprovado = models.BooleanField(default=False) 

signals.py:>

@receiver(post_save, sender=Aval) 
def new_rate(sender, instance, created, **kwargs): 
    aval = instance 

    print("Aval is saved.") 

我測試信號post_save對阿蛙勒模型,當我保存一些對象Aval它不打印「Aval被保存」。我做錯了什麼?

+0

http://stackoverflow.com/a/22924754/ 594589 – dm03514 2014-11-24 14:50:18

+0

[信號處理程序應該在django項目中生活?]的可能的重複(http://stackoverflow.com/questions/2719038/where-should-signal-handlers-live-in-a-django-project) – dm03514 2014-11-24 14:50:29

回答

7

嘗試包括:

import signals 

__init__.py文件的應用程序。

+3

感謝你wolendranh,它的作品!爲什麼它不在django文檔中? https://docs.djangoproject.com/en/1.7/topics/signals/ – rayashi 2014-11-24 14:55:19

+0

@rayashi不知道這一點) – wolendranh 2014-11-24 14:58:52

3

我不知道,如果貼錯了,但在代碼模型名爲Avaliacao,而不是阿蛙勒,模型和sender參數必須匹配

+0

對不起Krs你rigth。 :( – rayashi 2014-11-24 14:50:29