我正在使用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 这种方法似乎不起作用。
答案 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