Python Django重定向上的NoReverseMatch错误
我在django项目的电影应用程序中遇到以下异常: 异常类型:NoReverseMatch at/movie/ 异常值:找不到参数为“{}”和关键字参数为“{}”的“movie.views.movie_detail”的反转。已尝试0个模式:[] 以下是movie.url.py的url模式:Python Django重定向上的NoReverseMatch错误,python,regex,django,redirect,Python,Regex,Django,Redirect,我在django项目的电影应用程序中遇到以下异常: 异常类型:NoReverseMatch at/movie/ 异常值:找不到参数为“{}”和关键字参数为“{}”的“movie.views.movie_detail”的反转。已尝试0个模式:[] 以下是movie.url.py的url模式: from django.conf.urls import url from . import views urlpatterns = [ url(r'^(?P<movie_name>[\
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^(?P<movie_name>[\w_]+)$', views.movie_detail, name='movie_detail'),
url(r'^', views.movie_home, name='movie_home'),
]
到目前为止,我无法使此代码正常工作。但如果我更改return语句并将其放入movie\u home函数,它就可以工作了:
movie_name += '/'
return redirect(movie_name)
现在,在阅读了stackoverflow中的其他一些此类问题后,我知道return redirect(movie_name)
语句可以工作,因为它重定向到url:
127.0.0.1:8000/电影/无论电影名是什么
但我不明白为什么重定向到电影细节视图不起作用
如何使其工作?首先,
movie\u detail
应该是一个字符串('movie\u detail'
),并在'movie'
命名空间下-另外,尝试使用reverse并将名称作为参数传入:
return redirect(reverse('movie:movie_detail', args=[movie_name]))
另外,在$
之前的url.py
中,您似乎遗漏了结尾斜杠:
url(r'^(?P<movie_name>[\w_]+)/$', views.movie_detail, name='movie_detail'),
url(r'^(?P[\w\u]+)/$,views.movie\u detail,name='movie\u detail'),
首先,movie\u detail
应该是一个字符串('movie\u detail'
),并且在'movie'
命名空间下-另外,尝试使用reverse并将名称作为参数传入:
return redirect(reverse('movie:movie_detail', args=[movie_name]))
另外,在$
之前的url.py
中,您似乎遗漏了结尾斜杠:
url(r'^(?P<movie_name>[\w_]+)/$', views.movie_detail, name='movie_detail'),
url(r'^(?P[\w\u]+)/$,views.movie\u detail,name='movie\u detail'),
试试这个:
movie.url.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^(?P<movie_name>[\w_]+)$', views.movie_detail, name='movie_detail'),
url(r'^', views.movie_home, name='movie_home'),
]
试试这个:
movie.url.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^(?P<movie_name>[\w_]+)$', views.movie_detail, name='movie_detail'),
url(r'^', views.movie_home, name='movie_home'),
]
它不起作用。以下是异常:异常类型:NoReverseMatch at/movie/exception Value:Reverse for'movie_detail'与参数(u'the_peanuts_movie',)和关键字参数{}未找到。尝试了0个模式:[]更新了我的答案,添加第二部分以查看现在是否有效当我使用“movie:movie\u detail”时,您的解决方案有效…这是因为命名空间问题吗?太好了!是的,名称空间允许您在不同的应用程序下使用相似的名称,以避免冲突。很高兴它成功了!谢谢你的帮助。我被这个问题困扰了很长时间,似乎没有其他答案提到这个名称空间问题!它不起作用。以下是异常:异常类型:NoReverseMatch at/movie/exception Value:Reverse for'movie_detail'与参数(u'the_peanuts_movie',)和关键字参数{}未找到。尝试了0个模式:[]更新了我的答案,添加第二部分以查看现在是否有效当我使用“movie:movie\u detail”时,您的解决方案有效…这是因为命名空间问题吗?太好了!是的,名称空间允许您在不同的应用程序下使用相似的名称,以避免冲突。很高兴它成功了!谢谢你的帮助。我被这个问题困扰了很长时间,似乎没有其他答案提到这个名称空间问题!