2011-02-07 84 views
1

我正在使用django注册,它以某种方式停止工作的方式应该工作。我完全失去了这一点,不知道从哪里开始寻找错误。django注册激活用户,但显示错误

所以会发生的是,只要用户点击激活链接,他就会得到activation.html模板。只有在出现错误时才应显示。

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

任何想法都将不胜感激。

回答

1

首先,您的文章的主题和实际描述是冲突的。该主题说,Django注册总是无法激活用户,但在描述你说用户被激活并可以登录。这是什么?

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

+0

你是对的,我修正了标题。但我认为你的答案是错误的。至少文档:http://docs.b-list.org/django-registration/0.8/views.html说:“在不成功的激活,将呈现模板注册/ activate.html显示错误消息;覆盖这里,传递参数template_name(见下文)。“ – Kai 2011-02-07 01:27:49

+0

确实。在文档中:`registration/activate.html:如果帐户激活失败,则使用。' – 2011-02-07 01:44:47

1

有0.7和0.8之间有很大的区别:

在0.7:当用户试图 激活他/她的账户

登记/显示activate.html

在0.8

登记

/activate.html

如果帐户激活失败使用。

0

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