我在urls.py上有这个网址
url(r'^login/$', 'django.contrib.auth.views.login',
{'template_name':'login.html'}),
url(r'^(one|two)/logout/$', 'django.contrib.auth.views.logout_then_login',
{'login_url':'/login/'})
我正在尝试使用上下文字典将login_url
发送到logout_then_login(),但这会给出:
TypeError at /one/logout/
logout_then_login() got multiple values for keyword argument 'login_url'
仅在使用备用(one|two)
时才会出现此错误。我不应该能够使用这个替代方案,而不是两个不同的网址用于同一视图吗?会推荐吗?
编辑:识别出真正的问题并相应地更新问题
答案 0 :(得分:0)
你的代码非常好; logout_then_login
接受login_url
参数,至少从此开始使用Django 1.0。如果出现错误,则会导致项目中的其他位置。发布完整的回溯可能有所帮助,但一般来说,您需要在代码中查找传递login_url
的任何其他位置,可能是在覆盖中。
<强>更新强>
捕获括号组并将其作为方法传递给方法。您需要使用非捕获组,例如:
url(r'^(?:one|two)/logout/$', 'django.contrib.auth.views.logout_then_login',
{'login_url':'/login/'})