2

私はテンプレートビューを持っています。コードはここにあります。

class MyTemplateView(TemplateView):
    def get_context_data(self, **kwargs):
        context = super(UBaseTemplateView, self).get_context_data(**kwargs)
        # i want to redirect another url in here
        # how to do it

        return context
4

2 に答える 2

7

さて、あなたは次のようになります:

class MyTemplateView(TemplateView):
    def get(self, request, *args, **kwargs):
        return HttpResponseRedirect('/<your path here>/')

詳細については、こちらをご覧ください。詳細については、こちらをご覧ください。

投稿データを渡したい場合は、次のことを行うだけです。

class MyTemplateView(TemplateView):
    def get_context_data(self, **kwargs):
        return HttpResponseRedirect(reverse('/<your url here>/', [params]))

関数を使用してこれを行うこともできpostます。

class MyTemplateView(TemplateView):
    def post(self, request, *args, **kwargs):
        # do what you want with post data
        # you can get access via request.POST.get()
        return HttpResponseRedirect('/<your url>/')
        # Or use the above example's return statement, if you want to pass along parameters
于 2013-07-05T08:02:48.087 に答える
0

これを行うためのより一般的な方法は、ここで説明されているように、dispatch() を使用することです。ディスパッチの詳細については、Django docs を参照してください。

利点は、メソッドが GET の場合にのみ get() 関数が呼び出されるのに対し、これはリクエストで指定された HTTP メソッド (GET、PUT、POST など) に関係なく機能することです。

于 2015-02-18T17:26:29.960 に答える