有阅读文档,django如何在更新用户时发送post_save信号?
我在signals.py文件创建这样的:
from django.db.models.signals import post_save
from django.dispatch import receiver
from models import User
from models import Story
@receiver(post_save, sender=User)
def create_initial_story(sender,instance, signal, created, **kwargs):
print "helloooo!"
if created:
Story(user = instance, title = 'Random Stories', description="Random stories", is_closed = False, is_random = True).save()
其中,从我读,是所有我想我需要做的发送消息。那么,并创建一个新的用户(我使用Django的注册框架)然而,没有任何东西正在发送(好吧,接收方法我什么也没做)。我还删除了“发件人=用户”参数@receiver注释 - 留下
@receiver(post_save)
但这并没有帮助的事情。什么都不输出到控制台,没有新的数据保存...我需要发送用户保存时的信号?如果是这样,我该怎么做?我使用django注册,所以我有一个UserProfile定义...我的意思是,在哪里(在什么文件/方法)我会告诉用户发送信号?
hm,我对python有点新东西 - 所以除了导入信号线之外,我是否需要在models.py中调用它呢?或者我可以把它导入并保留在那里? – bharal
@bharal只需导入。你需要以某种方式运行它。在signals.py中使用'django.db.models.get_model'来防止循环导入。 – DrTyrsa