【问题标题】:django-registration activates user but shows errordjango-registration 激活用户但显示错误
【发布时间】:2011-06-22 11:33:08
【问题描述】:

我正在使用 django-registration,它以某种方式停止了应有的工作方式。我完全迷失了这一点,不知道从哪里开始寻找错误。

所以发生的情况是,每当用户点击激活链接时,他都会获得activation.html 模板。仅应在出现错误时显示。

但实际上并没有错误。用户被激活并可以登录。

对此的任何想法将不胜感激。

【问题讨论】:

    标签: django django-registration


    【解决方案1】:

    首先,您的帖子主题与实际描述有冲突。主题说 django-registration 总是无法激活用户,但是在你的描述中你说用户被激活并且可以登录。是哪个?

    其次,单击激活链接应始终将用户发送到activate.html。您将在该页面上有一个名为 account 的变量。如果激活成功,account 将填充 User 对象,否则为 False。

    【讨论】:

    • 你说得对,我修正了标题。但我认为你的答案是错误的。至少文档:docs.b-list.org/django-registration/0.8/views.html 说“在不成功激活时,将呈现模板registration/activate.html 以显示错误消息;要覆盖thise,请传递参数template_name(见下文)。”
    • 确实如此。在文档中:registration/activate.html: Used if account activation fails.
    • 啊,所以您使用的是 0.8 版,显然已经完全重写。我仍在使用旧版本,这是我的答案所依据的。对此感到抱歉。
    • 我偶然使用了 0.7(pypi 中的最新版本)。现在从bitbucket升级回最新版本,但我仍然有同样的问题。
    • 由于没有选项,我刚刚更改了我的模板。要么文档错了,要么我搞砸了别的东西。没关系,因为它现在正在工作。 :)
    【解决方案2】:

    0.7和0.8有很大区别:

    在 0.7 中:

    registration/activate.html 在用户尝试注册时显示 激活他/她的帐户。

    在 0.8 内

    registration/activate.html

    在帐户激活失败时使用。

    【讨论】:

    【解决方案3】:

    调试registration.views.activate显示:如果success_url没有设置, backend.post_activation_redirect 方法被调用。如果您使用默认后端,则返回一个空上下文,不包含在模板中查询的帐户变量。 解决方案可能是覆盖默认后端。 唯一的问题是您不能通过重定向将任何对象传递给视图。因此,您不能将帐户传递给模板上下文。如果愿意,您可以使用 get params 来完成。 我决定只更改激活模板并删除条件。

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 2020-08-08
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      相关资源
      最近更新 更多