不能得到post_save在Django工作 [英] Cant get post_save to work in Django
问题描述
我读了 django docs
关于信号
,并为我的模型写了这段代码 Car
:
I read the django docs
about signals
and wrote this piece of code for my model Car
:
@receiver(request_finished)
def signal_callback(sender, **kwargs):
print 'Save Signal received'
@receiver(post_save, sender=Car)
def signal_handler(sender, **kwargs):
pass
request_finished(signal_callback, sender=car, dispatch_url="Unique save id")
但问题是,当我启动我的服务器,只是打开管理员,我得到了很多'保存信号收到'
在我的终端。我想知道的是,我只限制 signal_handler
到 post_save
。但是,即使没有任何东西,仍然会出现这样的消息。我不明白这一点
But the problem is, that when I fire up my server, and just open up the admin, I get a lot of 'Save Signal received'
in my terminal. What I am wondering about is I have restricted the signal_handler
to post_save
only. But still, without even saving anything, the message shows up a lot of times. I dont understand this.
注意:我会诚实的。我理解了它的一部分,而不是文档中的一切。
Note : I will be honest. I understood parts of it, not everything from the documentation.
推荐答案
有一个更简单的方法来绑定 post_save
信号 从django.db.models.signals导入post_save
从myapp.models导入Car
There is a simpler way to bind post_save
signals
from django.db.models.signals import post_save
from myapp.models import Car
def do_something(sender, **kwargs):
print 'the object is now saved.'
car = kwargs['instance'] #now i have access to the object
post_save.connect(do_something, sender=Car)
信号 请求完成
被称为每个时间发出一个HTTP请求,这是一个猪。
The signal request finished
gets called every time a HTTP request is made, which is a hog.
这篇关于不能得到post_save在Django工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!