为啥它呈现 django 管理站点而不是自定义注销页面

Posted

技术标签:

【中文标题】为啥它呈现 django 管理站点而不是自定义注销页面【英文标题】:why does it renders django administration site instead of custom log out page为什么它呈现 django 管理站点而不是自定义注销页面 【发布时间】:2018-04-03 02:44:25 【问题描述】:

我为注销页面创建了自己的模板,但它加载了默认的 django 注销页面而不是它。根据this solution,我需要将 django.contrib.admin 放在 setting.py 中我的应用名称之后。我已经尝试过了,但对我不起作用。

setting.py:

.....
INSTALLED_APPS = [
'league',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

]

urls.py:

from django.conf.urls import url
from . import views
from django.contrib.auth.views import login, logout, logout_then_login

 urlpatterns = [

url(r'^login/$', login, name='login'),
url(r'^logout/', logout, name='logout'),
url(r'^logout-then-login/$', logout_then_login, name='logout_then_login'),

注销.html

% extends "league/base.html" %
% block title %Logged Out% endblock %

% block content %
<h1>Logged Out</h1>
% if form.errors %
<p>
You have been successfully logged out. You can <a href="% url 'login' %">login</a> again.
</p>
% endblock %

【问题讨论】:

请在您的问题中添加一些代码 您的注销网址在哪里?更新您的问题 【参考方案1】:

当您使用自定义注销页面时,您必须告诉 django 该页面在哪里。

您使用template_name 执行此操作 您的注销网址:

url(r'^logout/$', auth_views.logout,  'template_name': 'path_to/logout.html',, name='logout')

【讨论】:

【参考方案2】:

如果您使用 django v1.10 或更新版本,您可以使用 LOGOUT_REDIRECT_URL 设置属性来重定向注销页面。

https://docs.djangoproject.com/en/1.11/ref/settings/#logout-redirect-url

【讨论】:

以上是关于为啥它呈现 django 管理站点而不是自定义注销页面的主要内容,如果未能解决你的问题,请参考以下文章

有没有一种简单的方法可以完全自定义 Django 管理站点以显示不是字段的变量?

如何计算呈现 Django 管理页面所需的 SQL 查询数?

完全自定义 django 管理站点

反向自定义 django 管理站点 url?

使用自定义管理站点自动注册 Django 身份验证模型

在管理界面上向 Django 内联对象添加自定义操作