不能得到post_save在Django工作 [英] Cant get post_save to work in Django

查看:283
本文介绍了不能得到post_save在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 信号 从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆