自定义Django管理模板

Ash*_*hok 3 django django-templates django-admin

我试着像这样定制导航栏

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 %}
Run Code Online (Sandbox Code Playgroud)

看起来像这样

管理页面

现在我尝试在{%block branding%}中添加登录页面的标题

登录页面

但如果我添加内部品牌块它也会在导航栏中显示,如果我尝试在品牌块图像中添加图像和标题,则会显示登录页面标题.

如何为导航栏和登录页面标题添加不同的标题?

nik*_*k_m 10

这很容易实现.

在您的templates文件夹中,您应该已经创建了一个admin子文件夹.在那里,你应该放置文件base_site.htmllogin.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 %}
Run Code Online (Sandbox Code Playgroud)

内容login.html:

{% extends 'admin/login.html' %}

{% block branding %}
    <div class="head">
        <h1 id="name">Custom header text for LOGIN screen only</h1>
    </div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

以下是正确的项目结构:

project/
    myapp/
    myapp2/
    project/
    templates/
        admin/
            base_site.html
            login.html
    manage.py
Run Code Online (Sandbox Code Playgroud)

请注意extends您要覆盖的每个html模板内部.这至关重要.有关更多信息,请查看文档.