在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
我错过了什么?
答案 0 :(得分:4)
根据我从文档中理解,redirect_field_name
用作GET的键,其中值是重定向到的URL。查看来源here也表明了相同的观点。如果是这种情况,则redirect_field_name
不应设置为网址。根据您发送的链接中login_required
的文档,接下来将传递给查询字符串中的视图。尝试传入您希望重定向到该网址的网址。