请考虑以下几点:
网址.py:
urlpatterns = patterns('',
('^test/$', ClassView.as_view()),
)
视图.py:
class ClassView(View):
def get(self, request):
return HttpResponse("test")
def post(self, request):
# do something
return redirect(ClassView.get(request)) # What should I do to redirect to a class here without specifying the path?
我想重定向到ClassView的get函数(/test/),但是当我尝试上述操作时,我得到:
NoReverseMatch at /test/
所以很明显它找到了网址,但是说没有匹配的?
可能您应该将名称设置为urlpattern并重定向到该名称?
你应该命名你的urlpattern并重定向到它,这将是最Django ey的方法。
它没有文档记录(所以不能保证在以后的Django版本中可以工作),但是
redirect
快捷方法可以使用一个view函数,所以您可以几乎执行redirect(ClassView.as_view())
…我说这几乎是因为这实际上不起作用-每次您调用as_view()
时,都会返回一个新的视图函数,所以redirect
不认为与urlconf中的视图相同。所以要想做你想做的,你必须像这样更新urlconf:
在你看来
但我仍然认为你应该用另一种方式:
是的。
这将重定向到与您的
post()
相同的URL,然后由您的get()
处理。相关问题 更多 >
编程相关推荐