在urls.py中传递'redirect_field_name'没有生效

时间:2014-08-15 17:41:50

标签: python django

在Django文档的this section中,它表示通过url conf传入redirect_field_name,如

url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'redirect_field_name': '/albums/all/'}),")

应覆盖next值,这是成功登录后的位置(在两个绿色框之间说明)。

Mine继续使用默认值settings.LOGIN_URL,即"/accounts/profile/",我不明白为什么。

在登录模板中打印next会产生空字符串:<P>next={{ next }}</P>

暂时放弃这一点,我从{'redirect_field_name', ...中的那一行删除了urls.py,而是将LOGIN_URL中的settings.py更改为/albums/all/。我重新启动了服务器,但它仍然转到/accounts/login

我看到了这个问题,但没有提及urls.py: Django- why inbuilt auth login function not passing info about user to after successful login url

我错过了什么?

1 个答案:

答案 0 :(得分:4)

根据我从文档中理解,redirect_field_name用作GET的键,其中值是重定向到的URL。查看来源here也表明了相同的观点。如果是这种情况,则redirect_field_name不应设置为网址。根据您发送的链接中login_required的文档,接下来将传递给查询字符串中的视图。尝试传入您希望重定向到该网址的网址。