0

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

网址.py

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

视图.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。

我该如何解决这个问题?

4

1 回答 1

2

您的视图在 url 模式中没有任何参数,这就是它失败的原因。您需要使用为此用例设计的消息框架。

于 2013-06-16T10:57:53.947 回答