django重定向错误:NoReverseMatch

时间:2016-07-16 19:42:38

标签: django

我正在使用Django 1.9,我一直收到这个错误:

  

/ class / create /

中的NoReverseMatch      

用'class_sheet'反转   没有找到参数'()'和关键字参数'{'class_name':'d'}'。   尝试了0种模式:[]

我的app / views.py

中有这个
from django.shortcuts import redirect
...

def class_sheet(request, class_name):
  get_object_or_404(EnclaveClass, pk=class_name)
  return HttpResponse("this is %s" % class_name)

def create_class(request):
 return redirect('class_sheet', class_name='d')

在我的urs.py

urlpatterns = [
  ...
  url(r'^create/$', views.create_class, name="create_class"),
  url(r'^(?P<class_name>.*)/$', views.class_sheet, name="class_sheet"),
  ...
]

我无法在网上找到任何表明我的功能有误的帖子。关于如何修理或在哪里看的任何建议都表示赞赏。

3 个答案:

答案 0 :(得分:1)

您应该使用'app:class_sheet',其中app namespace用于包含网址:include('app.urls', namespace='app')

答案 1 :(得分:0)

我没有指定名称空间!将create_class更改为

def create_class(request):
    return redirect('class:class_sheet', class_name='d')

让重定向工作。

非常感谢弗拉基米尔·丹尼洛夫在评论中指出这一点!

答案 2 :(得分:-1)

如果对此URL的请求满足URL中的正则表达式,您是否在浏览器中检查了CONSOLE?