[英]Redirect loop caused by django middleware
我正在嘗試在注冊后立即重定向用戶以轉到協議條款頁面。
這是我的中間件課程:
class TermsMiddleware(object):
def process_request(self, request):
if request.user.profile.filled_terms is None:
return redirect(reverse('terms'))
我收到以下錯誤,可以快速瀏覽一下我的服務器:
This webpage has a redirect loop
我有一個帶有fill_terms字段的Profile模型類。
我有一個術語模板,當我手動訪問它時,它工作得很好。
這也是我的網址匹配器:
url(r'^terms/', 'hana.views.terms', name='terms')
如何擺脫這種重定向循環,使注冊用戶通過中間件重定向到協議條款頁面?
好了,也處理了對條款頁面的請求,如果filled_terms
為None
,它將重定向到“條款”頁面,這就是您的循環。
因此,解決此問題的一種方法是檢入中間件,當前請求是否用於重定向頁面的路徑:
class TermsMiddleware(object):
def process_request(self, request):
if request.user.profile.filled_terms is None:
if not request.path == reverse('terms'):
return redirect(reverse('terms'))
這樣,僅當請求不針對重定向頁面時,才執行重定向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.