【问题标题】:Django: Reverse not foundDjango:找不到反向
【发布时间】:2014-09-18 04:14:17
【问题描述】:

请原谅我的无知,但我正在尝试重定向到登录页面,显示发生了一些错误,但不知道为什么会出现此 django 错误:

NoReverseMatch 在 /dologin
使用参数 '()' 和关键字参数 '{'error': 'Login Failed'}' 反转'show_login'。尝试了 0 个模式:[]

调用此行时:

return redirect('show_login', error="Login Failed")

我什至不明白反过来是什么。我只想发送错误以显示登录然后捕获它:

def show_login(request, error=False):
    return render(request, 'main/login.html', {"error": error})

并且dologin是从urls.py映射的:

...
url(r'^dologin', 'main.views.login', name='dologin'),
...

编辑:可能与此有关: 我第一次有:

url(r'^login', 'main.views.show_login', name='login'),

但当改为

url(r'^login', 'main.views.show_login', name='show_login'),

错误是:

everse for 'show_login' with arguments '()' and keyword arguments '{'error': 'Login Failed'}' not found. 1 pattern(s) tried: ['login']

【问题讨论】:

  • /dologin 注册在urls.py ?
  • @Lafada 是的。 url(r'^dologin', 'main.views.login', name='dologin'),
  • 请你试试这个>>> from django.core.urlresolvers import get_resolver >>> get_resolver(None).reverse_dict.keys() 看看它是否显示dologin
  • @Lafada ['index', , , , , , , 'logout', 'show_login', 'login', , 'setup', 'show_setup']
  • manage.py shell中使用此代码

标签: python django


【解决方案1】:

您的show_login 视图不接受任何参数,但您正在尝试传递error 参数。我不清楚你想做什么,但如果你把这个论点排除在外,它就会起作用。

【讨论】:

  • 当然,当客户端尝试登录时发生了真正的错误,因此我返回了一个错误变量以使其显示在视图中。用户输入了错误的密码,这是必须检索的错误。如果没有发生错误,则将错误传递给 false。我正在接受默认设置为 False 的错误(请求,错误 = False)。我认为我没有在 URL 映射器中使用它。 @丹尼尔罗斯曼
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 2010-10-12
  • 2013-10-05
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
相关资源
最近更新 更多