小编Asi*_*bel的帖子

Django 重定向上的 NoReverseMatch 错误

我在django 项目的电影应用程序中遇到以下异常:

异常类型:NoReverseMatch at /movie/ 异常值:“movie.views.movi​​e_detail”反转,参数“(u'the_peanuts_movie',)”和关键字参数“{}”未找到。尝试了 0 个模式:[]

以下是 movie.urls.py 的 url 模式:

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'),
]
Run Code Online (Sandbox Code Playgroud)

以下是movies.views.py的一些部分:

def movie_detail(request, movie_name):
     # code
     ...

def movie_home(request):
    ...
    return redirect(movie_detail, movie_name)
    # movie_name is a string
Run Code Online (Sandbox Code Playgroud)

到目前为止,我无法使这段代码工作。但它有效,如果我更改return 语句并将其放入movie_home 函数

    movie_name += '/'
    return redirect(movie_name)
Run Code Online (Sandbox Code Playgroud)

现在在 stackoverflow 中阅读了其他一些此类问题后,我知道该return redirect(movie_name)语句有效,因为它重定向到一个 url:127.0.0.1 : 8000/movie/whatever_is_the_movie_name

但我不明白为什么重定向到movie_detail视图不起作用。

我怎样才能让它工作?

python regex django redirect

0
推荐指数
1
解决办法
3172
查看次数

标签 统计

django ×1

python ×1

redirect ×1

regex ×1