繁体   English   中英

用户注册完成后,如何使用Django Signals运行功能?

[英]How to use Django Signals to run a function after user registration completed?

我正在使用django_registration_redux软件包来处理注册新用户。 然后,我有一组类别,默认情况下,我希望每个新用户都遵循这些类别。 因此,创建用户对象后,我必须立即运行以下代码:

for category in categories:
    f = Follow(user=user.username, category=category)
    f.save()

阅读django Docs之后,我猜想向UserProfile模型添加以下方法会起作用:

def follow_def_cat(sender, instance, created, **kwargs):
    if created:
        for category in categories:
            f = Follow(user=instance.username, category=category)
            f.save()
    post_save.connect(follow_def_cat, sender=User)

但是似乎我无法将保存用户信号连接到该功能。

将您的连接指令放在信号方法之外。

def follow_def_cat(sender, instance, created, **kwargs):
    if created:
        for category in categories:
            f = Follow(user=instance.username, category=category)
            f.save()

post_save.connetc(follow_def_cat, sender=User)

请记住, follow_def_cat不是模型方法,您应该在与模型类相同的级别上创建它:

class UserProfile(models.Model):

    ...

def follow_def_cat(sender, ...):
    ...

post_save.connect(follow_def_cat, sender=User)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM