【问题标题】:django noreversematch error when passing argumentsdjango noreversematch 传递参数时出错
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-11-15
    • 1970-01-01
    • 2016-10-08
    • 2018-11-28
    • 2020-05-24
    • 2020-01-29
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    相关资源
    最近更新 更多