Django自定义用户,如何在1.5中获取信号

时间:2013-09-25 05:50:39

标签: django-signals django-1.5

我正在使用Django 1.5,它允许自定义用户。我已经让自定义用户自己工作了。 我想在创建自定义用户时添加新模型Blah(也就是使用信号来执行此操作)。

目前,我已经在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 个答案:

答案 0 :(得分:1)

user = kw["instance"]kw["created"]替换为kwargs["instance"]kwargs["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