我是一個django新手,剛剛完成了教程(第04部分),所以現在我想繼續看看我是否可以爲我的項目添加一些身份驗證。我想限制對polls_results頁面的訪問,您只能在登錄時才能看到它。在最後一部分,結果頁面由一個通用視圖(DetailView)提供,這個通用視圖被分類並將方法裝飾器添加到了被覆蓋的分派方法。method_decorator login_required不起作用?
class VoteResults(DetailView):
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(VoteResults, self).dispatch(*args, **kwargs)
在介紹之後,我提交表決後我希望看到一個not authorized error
(401?),但我還是看到的結果頁(沒有錯誤),甚至說我絕對不會登錄了什麼事我丟了?所有中間件和已安裝的應用都存在於settings.py中,正如我相信的文檔所指出的那樣。
任何線索我在做什麼錯在這裏?
可能是調度方法名稱中的錯字。所以裝飾者從未被擊中。
它可能只是你的代碼,但你正在裝飾一個名爲'dispatched'而不是'dispatch'的方法。 –
是的這只是我的代碼在這裏編輯的問題。雙擊正在執行的日誌語句進行檢查。 –
如果使用'@ login_required'而不是'@method_decorator(login_required)',該怎麼辦? – machaku