2011-02-07 36 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來做。 我決定只更改激活模板並刪除條件。