通过urls.py将"next"传递给django登录模板

use*_*401 2 django django-urls

我正在尝试使用此代码通过urls.py文件将"next"字段传递给我的login.html模板

这很好用:

urls((r'^login/$', 'django.contrib.auth.views.login',
    {'template_name': 'myapp/login.html'}),
Run Code Online (Sandbox Code Playgroud)

但我不希望登录后我的重定向转到'/ accounts/profile /'页面,我想转到网站根目录'/'.

url(r'^login/$', 'django.contrib.auth.views.login',
    {'template_name': 'login.html', 'next':'/'}),
Run Code Online (Sandbox Code Playgroud)

但我明白了

login() got an unexpected keyword argument 'next'
Run Code Online (Sandbox Code Playgroud)

不知道如何通过urls函数传递'next'参数,似乎无法找到其他解决方案,任何建议?

use*_*401 8

我能够做到这一点,

url(r'^login/$', 'django.contrib.auth.views.login',
    {'template_name': 'login.html', 'extra_context': {'next':'/'}}),
Run Code Online (Sandbox Code Playgroud)


Tem*_*muz 7

因此,您可以通过在settings.py中设置LOGIN_REDIRECT_URL来设置登录后的默认URL:https://docs.djangoproject.com/en/dev/ref/settings/#login-redirect-url

它的默认值是/ accounts/profile /,这就是它重定向的原因!

# settings.py
LOGIN_REDIRECT_URL = '/'
Run Code Online (Sandbox Code Playgroud)