我尝试像这样自定义导航栏
Base_site.html
{% block nav-global %}
<img class = "brand_img" src = "{% static 'images/ic_launcher.png'%}"
width = "50" height = "50" alt = "logo">
{%block branding%}
{% endblock %}
<div class = "head">
<h1 id = "name">Admin Dashboard</h1>
</div>
{% endblock %}
看起来像这样
现在我尝试在{%block branding%}
中添加登录页面的标题但如果我在品牌栏中添加它也会在导航栏中显示,如果我尝试在品牌块图像中添加图像和标题,则会显示登录页面标题。
如何为导航栏和登录页面标题添加不同的标题?
答案 0 :(得分:7)
这很容易实现。
在templates
文件夹中,您应该创建了一个admin
子文件夹。在那里,您应该放置文件base_site.html
和login.html
。
base_site.html
的内容:
{% extends 'admin/base_site.html' %}
{% load static %}
{% block branding %}
<div class="head">
<h1 id="name">Admin Dashboard</h1>
</div>
{% endblock %}
{% block nav-global %}
<img class="brand_img" src="{% static 'images/ic_launcher.png'%}" width="50" height="50" alt="logo">
{% endblock %}
login.html
的内容:
{% extends 'admin/login.html' %}
{% block branding %}
<div class="head">
<h1 id="name">Custom header text for LOGIN screen only</h1>
</div>
{% endblock %}
以下是正确的项目结构:
project/
myapp/
myapp2/
project/
templates/
admin/
base_site.html
login.html
manage.py
请注意您要覆盖的每个html模板中的extends
。这很重要。有关详细信息,请查看docs。
答案 1 :(得分:1)
我发现您需要像这样调整DIRS
中TEMPLATES
中的settings.py
:
TEMPLATES = [
{
'BACKEND': .....,
'DIRS': [os.path.join(BASE_DIR, 'templates')], # <-- add this line here
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
.....
],
},
},
]
这是告诉您的应用程序在哪里寻找这些文件所必需的。除了上面@nik_m的解决方案之外,这对我也有用....