2016-03-05 72 views
1

我建立一個儀表盤爲我的應用程序,並使用Django的allauth進行身份驗證。我怎麼能要求我的所有視圖需要登錄,它是遞歸到我的儀表盤URL沒有顯式地設置在每一個?以下視圖是我的儀表板的主頁。謝謝。遞歸網址驗證與Django的Allauth

@verified_email_required 
def back_office_index(request): 
    return render(request, 'backoffice/index.html') 

回答

0

你可以使用一箇中間件的是,這樣的事情:

from allauth.account.decorators import verified_email_required 

class VerifiedEmailRequiredMiddleware: 

    def process_request(self, request): 
     if request.path.startswith('/dashboard'): 
      return verified_email_required(lambda r: None)(request) 
+0

我將此添加到我的看法,但什麼都沒有發生,我搜索的中間件類添加到我的設置文件,但沒看不到一個。我錯過了什麼嗎?謝謝。 –

+0

不確定你的意思是「將此添加到我的視圖中」。您不會將中間件添加到您的視圖中。把上面的代碼中'yourproject/some_app/middleware.py',並確保你的'settings.MIDDLEWARE_CLASSES'包含的條目'yourproject.some_app.middleware.VerifiedEmailRequiredMiddleware'。 – pennersr

+1

對不起,我還在學習Django。我想你的建議,但在控制檯我得到一個非常長的字符串'... /儀表板/帳號/登錄/%25252525252525252525252525253Fnext%25252525252525252525252525253D /儀表板/帳號/登錄/%2525252525252525252525252525253Fnext%252525252525252525252525252525253D /儀表板/帳號/登錄/%25252525252525252525252525252525253Fnext %25252525252525252525252525252525253D /儀表板/ HTTP/1.1" 302 0 ...' - 。我試着在上面的代碼中設置的路徑不同的變化,但沒有任何工程 –