1

条件が満たされた場合に別のページにリダイレクトするカスタム ミドルウェアを作成しています。私のコードは次のようになります。

class SettingHandler(object):  

    def process_view(self, request, view_func, view_args, view_kwargs): 
        if request.user.paid: 
            return view_func(request, *view_args, **view_kwargs)

        else:
            return HttpResponseRedirect(reverse('setting')) 

私の urls.py は次のようになります。

url(r'^setting/$', 'customers.settings', name='setting'),

リダイレクト条件に達すると、ページはレンダリングされません。コンソールの出力は次のようになります。

"GET /setting/ HTTP/1.1" 302 0
"GET /setting/ HTTP/1.1" 302 0
"GET /setting/ HTTP/1.1" 302 0
"GET /setting/ HTTP/1.1" 302 0
"GET /setting/ HTTP/1.1" 302 0
"GET /setting/ HTTP/1.1" 302 0
"GET /setting/ HTTP/1.1" 302 0
"GET /setting/ HTTP/1.1" 302 0
"GET /setting/ HTTP/1.1" 302 0

目的のページにリダイレクトするにはどうすればよいですか?

4

2 に答える 2

0

これにより、当面の問題が修正されます。

if request.setting or request.path == '/setting/':

しかし、それはかなりハッキーです。おそらくもっと良い方法がありますが、何を達成しようとしているのかによって異なります.IOW、テストしている条件は何ですか?

于 2013-08-31T21:45:31.230 に答える