django 用户注销时重定向到管理页面的解决方法
用户登录和注销
使用django自带的认证系统django.contrib.auth时,默认的认证视图会在templates下的registration文件夹中查找模板,
其中登录模板为login.html,注销模板为logged_out.html。
出现问题:
两模板继承自同一base.html,登录继承有效,但注销页面重定向到了Django管理页面。
登录页面:
注销页面:
解决方法
https://stackoverflow.com/questions/15467831/django-logout-redirects-me-to-administration-page
尝试了其中一种方法:
- Make sure your app comes before
django.contrib.adminunder installed apps insettings.py.
创建应用配置settings.py中的INSTALLED_APPS时,应用名如users应该放在django.contrib.admin应用之前。
# mysite/settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'learning_logs',
'users',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
- Make sure your template is called
logged_out.html.
注销页面的模板名称为logged_out.html