Django admin:每个应用程序都有不同的自定义base_site.html

Django admin:每个应用程序都有不同的自定义base_site.html,django,django-admin,Django,Django Admin,嗨,我一直在尝试自定义我的管理页面,我有一些特定于应用程序的管理页面,需要自定义javascript和css。我希望在每个应用程序的模板/admin/中包含不同的base_site.html,包括所需的javascript和css。问题是,只显示第一个注册应用程序的base_site.html的更改(在settings.py文件中) 我为每个应用定制base_site.html的方法正确吗?如果是,我如何使其工作 如何只在一些管理页面中包含css和js 多谢各位 -app1 -tem

嗨,我一直在尝试自定义我的管理页面,我有一些特定于应用程序的管理页面,需要自定义javascript和css。我希望在每个应用程序的模板/admin/中包含不同的base_site.html,包括所需的javascript和css。问题是,只显示第一个注册应用程序的base_site.html的更改(在settings.py文件中)

  • 我为每个应用定制base_site.html的方法正确吗?如果是,我如何使其工作
  • 如何只在一些管理页面中包含css和js
多谢各位

-app1
    -templates
        -admin
            -base_site.html
-app2
    -templates
        -admin
            -base_site.html
-app3
    -templates
        -admin
            -base_site.html
-manage.py

如果您只想向管理员添加一些自定义javascript和css,那么最好使用ModelAdmin资产定义。更多信息,请参阅。大概是这样的:

class ArticleAdmin(admin.ModelAdmin):
    class Media:
        css = {
            "all": ("my_styles.css",)
        }
        js = ("my_code.js",)
至于base_site.html,您将无法为每个应用程序覆盖它,它是通用模板而不是特定于应用程序的模板。但无论如何,您可以基于每个应用程序甚至每个模型覆盖/扩展change_form.html和change_list.html模板。树应如下所示:

-app1
    -templates
        -admin
            -app1
                -change_form.html
                -change_list.html
如果使用扩展而不是重写,则可以使用
extrahead
extrastyle
块访问标题

/app1/templates/admin/app1/change\u form.html

{% extends "admin/change_form.html" %}
{% block extrahead %}
{{ block.super }}
... your code here ...
{% endblock %}