django noreversematch 传递参数时出错

Posted

技术标签:

【中文标题】django noreversematch 传递参数时出错【英文标题】:django noreversematch error when passing arguments 【发布时间】:2013-06-12 12:00:49 【问题描述】:

当我单击页面 /users/login 时,我在 /user/login/ 处收到错误 NoReverseMatch。 下面是我的代码的样子

urls.py

  url(r'^$', 'views.homepage', name='home'),
  url(r'^user/login/$', 'coolstuff.views.login_view'),

views.py

def login_view(request):
   if request.method == 'POST':
      username = request.POST['email']
      password = request.POST['password']
      user = authenticate(username=username, password=password)
      if user is not None and user.is_active:
         login(request, user)
         return HttpResponseRedirect(request.GET.get("next"))
      else:
          login_error = "Your username and/or password are incorrect."
          return HttpResponseRedirect(reverse('views.homepage', kwargs='login_error': login_error))


def homepage(request, login_error=''):
    return render_to_response(homepage.html,
         'login_error': login_error,,
         context_instance=RequestContext(request))

所以,我只想在用户输入错误的用户名或密码时传递 login_error 变量。在任何其他情况下,主页都会在没有 login_error 的情况下被调用。 我试图将 login_error 作为额外变量传递给视图函数,但在 /user/login/ 处收到错误 NoReverseMatch。

我该如何解决这个问题?

【问题讨论】:

你使用的是什么版本的 Django? 我正在使用 django 1.5 你能发布你的模板homepage.html吗? 你检查过这个吗:***.com/questions/1842389/…? 【参考方案1】:

您的视图在 url 模式中不接受任何参数,这就是它失败的原因。您需要使用专为此用例设计的messages framework。

【讨论】:

以上是关于django noreversematch 传递参数时出错的主要内容,如果未能解决你的问题,请参考以下文章

NoReverseMatch:无法将参数从模板传递到视图。

django url中的NoReverseMatch js变量

NoReverseMatch 在 /sessions/exercise/6/update/

没有反向匹配 - django.urls.exceptions.NoReverseMatch

Django 查看错误 - NoReverseMatch

网址 django,NoReverseMatch