2013-09-25 30 views
0

我使用Django 1.5,它允許自定義用戶。我已經讓自定義用戶能夠獨立工作。 我想添加一個新的模型Blah,無論何時創建自定義用戶(又名使用信號來做到這一點)。Django自定義用戶,如何讓信號在1.5工作

目前,我在signals.py

from group.models import Blah 
from django.db.models.signals import post_save 
from customuser.models import EmailUser 
from django.dispatch import receiver 


@receiver(post_save, sender=EmailUser) 
def user_saved(sender=None, instance=None, **kwargs): 
    user = kw["instance"] 
     print("Request finished!") 
     if kw["created"]: 
      blah = Blah(user=user) 
      blah.save() 

在settings.py:

AUTH_USER_MODEL = 'customuser.EmailUser' 

截至目前,當我使用Django的管理員可以創建一個新的電子郵件用戶。儘管我創建了EmailUser,但它並沒有創建一個新的Blah。

我參考:Django 1.5 custom user model - signals limitation 以下這種方法似乎沒有工作。

回答

1

kwargs["instance"]kwargs["created"]更換user = kw["instance"]kw["created"]和代替

def user_saved(sender=None, instance=None, **kwargs): 

使用:

def user_saved(sender, **kwargs): 

另一件事我做的是不是使用我把下面的代碼在@reciever查看包裝我的signals.py文件的結尾。

post_save.connect(user_saved, sender=EmailUser) 

還有一件事是確保你導入urls.py文件中的信號文件,以便它們實際上被加載。

from yourApp import signals 
相關問題