有閱讀文檔,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