django:我怎么实际覆盖管理网站模板
我知道这是问和答复了几次,但我基本上遍历堆栈溢出的所有帖子,仍然无法让这个工作。现在我只是想改变管理网站的标题。我有以下几点:django:我怎么实际覆盖管理网站模板
#base_site.html
{% extends "admin/base_site.html" %}
{% block title %}{{ title }} | {{ site_title|default:_('NEW TITLE') }}{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('NEW TITLE') }}</a></h1>
{% endblock %}
{% block nav-global %}{% endblock %}
我试图把这个
my_site /模板/管理/ base_site.html,
my_site /模板/管理/程序my_app/base_site.html和
my_site/my_app应用/模板/管理/ base_site.html,
但这些都没有工作。
settings.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'loaders': [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
],
},
},
]
我也尝试了直接改变Django的\的contrib \ ADMIN \模板\ ADMIN \ base_site.html但仍然没有任何反应。
我真的很沮丧,现在绝对可以使用一些帮助,感谢
像这里一样,最顶端的白色条显示“#[email protected]@”,这是我偶然在my_site/templates/admin/base_site.html中放置的注释。所以它有点工作,但我仍然不明白为什么我不能改变网站标题。
首先打开你的settings.py并添加一个模板文件夹:
TEMPLATES = [
{
'DIRS': [
'/path/to/your/django-project/templates', # Absolute Path
# os.path.join(BASE_DIR, 'templates') # Relative Path
],
...
文件base_site.html然后移动到以下目录。 保持文件系统上的结构非常重要。
/path/to/your/django-project/templates/admin/base_site.html
内容base_site的。HTML:
{% extends "admin/base_site.html" %}
{% block title %}{{ title }} | {{ site_title|default:_('NEW TITLE') }}{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">Your new Title</a></h1>
{% endblock %}
{% block nav-global %}{% endblock %}
Django Documentation - Overriding Admin Site
希望有所帮助。
使用my_site/my_app应用/模板/管理/ base_site.html
把你的应用程序,你之前 'django.contrib.admin' 定义这个模板,在INSTALLED_APPS
谢谢,但我很确定我已经做了所有这些,仍然在徒劳 –
您应该从模板中删除site_title。 INSTALLED_APPS中的应用顺序无关紧要。
{% extends "admin/base_site.html" %}
{% block title %}{{ title }} | {{ _('NEW TITLE') }}{% endblock %}
{% block branding %}
<h1 id="site-name">
<a href="{% url 'admin:index' %}">
{{ _('NEW TITLE') }}
</a>
</h1>
{% endblock %}
{% block nav-global %}{% endblock %}
所以你应该删除包括花括号,并且只写你想要的文本。
Remove: `{{ site_title|default:_('NEW TITLE') }}` Write: NEW TITLE Remove: `{{ site_header|default:_('NEW TITLE' }}` Write: NEW TITLE
另外,请确保您将文件夹(templates/admin)放入项目的根目录中。根目录是所有应用程序文件夹以及manage.py文件的容器。
换句话说,要创建的“模板”文件夹应与manage.py文件处于同一级别。
你的文件夹结构应该是这样的:
mysite/ templates/ admin/ base_site.html manage.py mysite/ __init__.py settings.py urls.py wsgi.py ... ...
显示层次结构的超级有用,谢谢 –
如果它不是,当你编辑源模板认真做事奇怪的是怎么回事工作,那么。你确定你从你认为的地方运行服务器吗? –
@DanielRoseman是的,我很确定。所以我现在真的很挠我的头 –
https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#customizing-adminsite – allcaps