我有一个templateview,代码就在这里,如何做到
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
答案 0 :(得分:5)
嗯,你会这样:
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
答案 1 :(得分:0)
更通用的方法是使用here所述的dispatch()。关于调度的更多背景是in the Django docs。
优点是,无论在请求中指定了什么HTTP方法(GET,PUT,POST等),这都会起作用,而如果方法是GET则只调用get()函数。