2011-12-03 191 views
0

我有網站,我需要限制用戶訪問該網站的部分。讓它簡單讓我們說,雖然網站是在測試版 - 我只想註冊用戶可以看到網站和所有的部分。但後來我想要刪除這些限制。限制訪問網站的部分(Django)

我能做些什麼 - 在模板級別執行此登錄。像所有的模板一樣,我可以有{% if user.is_authenticated %},然後只是顯示一些消息,如果沒有。

第二件事在我腦海中 - 我可以定義中間件,它將檢查用戶是否已登錄,如果沒有,則將其重定向到登錄頁面。

我看到有關模板解決方案壞事,因爲以後我會發布在網站的測試版,我將需要修改很多模板...

還有什麼我可以選擇在這裏?

謝謝!

+0

可能的重複[最佳方式使Django的login_required默認](http://stackoverflow.com/questions/2164069/best-way-to-make-djangos-login-required-the-default) –

回答

0

您必須標記與login_required decorator有關的所有方法或類。如果您使用的是通用視圖,請在urls.py中定義它們時設置login_required=True

+0

然後在我將移出測試版之後,我需要刪除這些@login_required ...此外,我不喜歡這樣做,因爲我擁有相同的模塊,這些模塊由單獨的站點共享,並且在一個站點上,我不想限制其訪問例。 –

+0

當你把關於urls.py更改的註釋寫完後,我開始喜歡它了:)需要調查。謝謝! –

+0

對不起,我誤解了你的問題。我覺得你的中間件解決方案可能是最好的主意。考慮我的回答撤回。 –