Python全系列 教程
3567个小节阅读:5931.4k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
如果我们要在admin管理页面中,增加自己的功能,那么我们需要覆盖admin的默认模板
地址:https://docs.djangoproject.com/zh-hans/4.1/ref/contrib/admin/#overriding-admin-templates
django库下的 contrib/admin/templates/admin
目录,可以查看django自带的所有模板
contrib/admin/templates/admin
中的模板并非每个应用程序或每个模型都可以被覆盖。以下情况可以:
actions.html
app_index.html
change_form.html
change_form_object_tools.html
change_list.html
change_list_object_tools.html
change_list_results.html
date_hierarchy.html
delete_confirmation.html
object_history.html
pagination.html
popup_response.html
prepopulated_fields_js.html
search_form.html
submit_line.html
需要修改admin的哪个内置模板,则继承哪个模板,并且在其基础上进行修改,我们以app_index.html为例:
原始模板
xxxxxxxxxx
{% extends "admin/index.html" %}
{% load i18n %}
{% block bodyclass %}{{ block.super }} app-{{ app_label }}{% endblock %}
{% if not is_popup %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
›
{% for app in app_list %}
{{ app.name }}
{% endfor %}
</div>
{% endblock %}
{% endif %}
{% block sidebar %}{% endblock %}
自定义编写模板
xxxxxxxxxx
{% extends "admin/app_index.html" %}
{% block sidebar %}
<a href="{% url 'children:customize' %}">自定义功能页面</a>
{% endblock %}
将改的模板放到当前子应用的文件templates\admin\子应用名的目录下即可
实时效果反馈
1. 关于Django管理后台,覆盖模板说法错误的是?
A 覆盖模板可以覆盖所有内置模板
B 覆盖模板需要放到指定目录才可以生效
C 覆盖模板需要继承父模板
D 父模板的目录为contrib/admin/templates/admin
答案
1=>A