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 传递参数时出错的主要内容,如果未能解决你的问题,请参考以下文章
django url中的NoReverseMatch js变量
NoReverseMatch 在 /sessions/exercise/6/update/