首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当同时使用django-registration和django-socialauth时,如何显示注册后的欢迎消息?

当同时使用django-registration和django-socialauth时,如何显示注册后的欢迎消息?
EN

Stack Overflow用户
提问于 2013-02-27 07:59:56
回答 3查看 1.5K关注 0票数 2

这是一个相当微不足道的问题,但我肯定遗漏了一些东西,因为我想不出一个令我满意的解决方案。

我使用两个库来处理注册,django-register用于基于电子邮件的注册,django-socialauth用于基于社交的注册,并希望在用户第一次注册时显示欢迎消息。

我目前的方法是让一个上下文处理器检查用户是否在过去2分钟内注册,如果注册了,则更新请求对象。这似乎效率很低,因为我每次都要检查,而它只使用一次。

我尝试使用信号来实现它,但是我遇到的问题是,我需要一些方法来连接到请求中,但是只有django- request才能传递请求。

我正在考虑的一种选择是使用信号来更新数据库中的记录,但对于这么简单的东西来说,这似乎有点过头了。我是不是漏掉了什么明显的东西?

context_processors.py:

代码语言:javascript
运行
复制
def just_registered(request):
    just_registered = False
    if request.user.is_authenticated() and request.user.email:
        if request.user.date_joined < datetime.today() + timedelta(minutes=2):
            if 'just_registered' not in request.session:
                just_registered = True
                request.session['just_registered'] = just_registered
    return { 'just_registered' : just_registered }
EN

回答 3

Stack Overflow用户

发布于 2013-02-27 08:25:23

您可以使用django消息并在模板中实现它

代码语言:javascript
运行
复制
{% if messages %}
    {% for message in messages %}
    {{message}}
    {% endfor %}
{% endif %}

代码语言:javascript
运行
复制
def just_registered(request):
    if request.user.is_authenticated():
        if request.user.date_joined < datetime.today() + timedelta(minutes=2):
            messages.info(request, "Welcome")
    return ''

用户已通过身份验证,您不必放入用户电子邮件,因为当您注册时,电子邮件是必需的

票数 3
EN

Stack Overflow用户

发布于 2013-03-10 07:19:41

为了清楚起见,您是否希望在用户首次成功登录时显示欢迎消息(在您的问题中显示为注册第一次)?他们是否遵循电子邮件中的激活链接?您可以将该电子邮件链接转到您的登录页面的新用户版本。

否则,如果你想对普通用户和第一次登录的用户使用相同的页面,我不明白你如何避免检查这是否是用户第一次登录。要做到这一点,似乎在用户(或对他们来说是fk‘’ed)上使用一个布尔属性来跟踪他们以前是否登录过,而不是查看他们多长时间前激活了帐户(如果他们在2天前激活了,但没有登录呢?)

票数 0
EN

Stack Overflow用户

发布于 2013-03-16 12:37:50

在你对公主回答的评论之后,你最好的选择是在用户第一次登录时保存一些数据。

我建议编写一个简单的中间件来检测第一次登录并将其保存为持久形式

看看这个:

http://blog.elcodo.pl/post/926902087/django-detect-users-first-login

您还可以在django tracking中签出中间件

https://github.com/codekoala/django-tracking/blob/master/tracking/middleware.py

它的效率稍低,但是考虑到HTTP的无状态,我看不到其他方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15101816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档