【问题标题】:Django allauth && UserProfile creation with post_save使用 post_save 创建 Django allauth && UserProfile
【发布时间】:2013-12-17 16:55:50
【问题描述】:

我正在使用 django-allauth 对来自不同社交网站的用户进行身份验证。当在我的数据库中创建一个用户时,我想调用一个函数来创建一个用户配置文件(或做某事),为了实现这一点,最好的方法是使用 signals.post_save

我有多个 django 应用程序,当然我不想更改核心 django-allauth,所以我的问题是我的 post_save 代码应该放在哪里?

谢谢。

【问题讨论】:

    标签: django django-signals django-allauth


    【解决方案1】:

    您可以在本地创建一个accounts 应用程序来保存用户配置文件以及与之相关的所有内容。你可以拥有:

    # Connecting to AllAuth Signals
    from allauth.account.signals import user_signed_up
    from django.dispatch import receiver
    
    @receiver(user_signed_up)
    def new_user_signup(sender, **kwargs):
        p = UserProfile(user = kwargs['user'])
        p.save()
    

    【讨论】:

    • 啊,好的。我有相同的代码,但位置错误。基本上我可以放入任何“自己的应用程序”,但不是signal(s).py,我必须把它放到``__init__.py'',对吗?或者至少那是为我工作的那个。你会把你的代码放在哪里?最好的地方是什么?
    • 视情况而定。 __init__.py 可能没问题。我还在我的注册表单中添加了额外的字段,因此我将其保存在执行该表单处理的代码附近。
    • 这行得通。实际上,我遇到了一个问题,即我使用信号进行常规注册,而 Facebook 没有创建 Profile 对象。我在复制这个过程。然后我自己添加了这个信号,它对我来说都是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2015-05-18
    • 2012-11-18
    • 2021-05-10
    相关资源
    最近更新 更多