You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Admin change_form.html模板全局覆盖失效问题求助

Django全局覆盖admin的change_form.html不生效问题

我想在Django的app1模块中全局覆盖admin/change_form.html,按照标准流程在app1/templates/admin路径下添加了同名模板文件,但自定义内容无法渲染。只有给每个Admin类手动指定change_form_template参数才能生效,但这不是我想要的实现方式。

我的模板代码(app1/templates/admin/change_form.html)

{% extends "admin/change_form.html" %}
{% load i18n static %}
{% block object-tools %}
    <h3>My extended html</h3> => Not rendered until => change_form_template = 'admin/change_form1.html'
    {{ block.super }}
    <script defer="defer" src="{% static 'app1/image_preview.js' %}"></script>
{% endblock %}

admin.py代码

from django.contrib import admin
from .models import Model1
class Model1Admin(admin.ModelAdmin):
    # change_form_template = 'admin/change_form1.html' # 手动指定此参数才生效,但不想用这种方式
    pass
admin.site.register(Model1, Model1Admin)

预期效果:<h3>My extended html</h3>应该显示在所有change_form.html页面中,因为模板已经继承了官方的admin/change_form.html,且app1已在settings.py的INSTALLED_APPS中注册。

完整操作步骤

  • django-admin startproject pr1
  • cd pr1
  • django-admin startapp app1
  • 修改settings.py,添加INSTALLED_APPS += ['app1']
  • 在app1/templates/admin目录下创建change_form.html并写入上述模板内容
  • 执行迁移、创建超级用户,登录后访问http://127.0.0.1:8000/admin/app1/model1/add/

补充说明

尝试过ChatGPT给出的方案但无效,也试过在项目根目录添加templates/admin路径,问题依旧。

内容的提问来源于stack exchange,提问作者Sami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:02:25