How to check if Django Signal works?
我有一个模型,我想实现信号的后保存。这是我的模型:
1 2 3 4 5 6 7 8 9 10 11 | class Answer(models.Model): question = models.ForeignKey( Question, related_name='answers_list', on_delete=models.CASCADE) answer = models.CharField(max_length=500) additional = models.CharField( max_length=1000, null=True, blank=True, default=None ) created_at = models.DateTimeField(auto_now_add=True) |
我想知道答案是怎么产生的。我用以下上下文创建了一个新的signals.py文件:
1 2 3 4 5 6 7 8 9 10 | from django.dispatch import receiver from django.db.models.signals import post_save from core.models import Answer @receiver(post_save, sender=Answer) def answer_question(sender, instance, **kwargs): print("CAUGHT A SIGNAL") print(instance.question.sentence, instance.answer) |
但当我创建一个新的答案时,它似乎不会触发信号(我是通过前端创建的,因为我使用的是django-rest框架)。我在控制台中没有看到任何东西,而没有看到将要进入我的API的post方法。
发生了什么?
Django调试工具栏有助于获取有关信号的更多信息。只需在设置中声明即可。py:
1 2 3 4 5 6 | DEBUG_TOOLBAR_CONFIG = { 'EXTRA_SIGNALS': [ 'myapp.signals.my_signal1', 'myapp.signals.my_signal2', ], } |
有一个面板显示所有向DJ工具栏及其接收器声明的信号。
我们需要注册来自
我想增加一个额外的链接,请通过