【问题标题】:Django Account Activation Link can't use twice?Django 帐户激活链接不能使用两次?
【发布时间】:2017-04-17 12:18:07
【问题描述】:

我正在使用 Django-Registraion-Redux 来注册用户。当用户注册并单击帐户激活链接时,它会被激活,但如果用户再次单击相同的链接,它会显示与以前相同的消息。这在技术上是不正确的。 那么如何限制用户点击相同的链接或如何向他显示正确的消息

【问题讨论】:

  • 对我来说,这似乎没问题,如果用户点击有效的激活链接并且他们的帐户已经处于活动状态,告诉他们一切正常,无需在他们脸上抛出一些错误。
  • 是的,但是错误帐户已经处于活动状态不会出现它显示相同的页面
  • 我如何显示--帐户已经处于活动状态
  • 你到现在都做了什么??请提供您的代码。
  • 我刚刚使用了 django-registration-redux 包

标签: python django redux django-users


【解决方案1】:

您可以覆盖激活视图,检查请求的用户是否处于活动状态。如果用户不活跃,则激活它,否则如果用户已经活跃,则重定向到错误页面,显示类似account already activated..

做这样的事情..

def activate(request, *args, **kwargs):
    if request.user.is_active:
         return render(request, alredy_active.html, {})
    else:
        request.user.is_active = True
        request.user.save()
        return render(request, success.html, {})

【讨论】:

  • 我应该为它设置网址
  • activate url 已经存在,您只需要覆盖它即可。你还需要设置错误 url 指向已经激活的视图
【解决方案2】:
if request.user.is_authenticated():
    # They already have an account; don't let them register again
    return render_to_response('template-name', {})

在这里,我们借助此语句 request.user.is_authenticated() 检查用户是否已通过身份验证,如果用户已通过身份验证,则将响应呈现给您的自定义模板。

【讨论】:

    猜你喜欢
    • 2020-03-27
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2020-04-07
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多