0

我正在使用 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 admin 创建一个新的电子邮件用户时。但是,在我创建了 EmailUser 之后,它并没有创建一个新的 Blah。

我参考了:Django 1.5 custom user model - 信号限制 遵循这种方法似乎不起作用。

4

1 回答 1

1

用and代替user = kw["instance"]and代替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
于 2013-09-25T05:58:24.360 回答