自定义Django应用管理模板

6 投票
1 回答
4067 浏览
提问于 2025-04-17 23:58

我想为我在Django项目中的每个应用创建一个自定义的index.html,这个文件是从admin/index.html派生出来的。

比如说,我的文件夹结构是这样的:

  • app1
    • templates
      • index.html(这个文件和全局模板admin/index.html不一样)
  • app2
  • templates
    • admin
      • base.html
      • index.html(这是全局模板index.html)

我该如何为我的应用实现自定义的admin index.html文件,让Django能够识别呢?目前只有全局模板/admin文件夹中的index.html被用来渲染我后台的首页。

我使用的是Django 1.6。

1 个回答

6

很遗憾,Django的管理界面并不是每个部分都可以按应用单独修改,正如文档中所说的:

在contrib/admin/templates/admin中,并不是每个模板都可以按应用或模型单独修改。以下这些是可以的:

  • app_index.html
  • change_form.html
  • change_list.html
  • delete_confirmation.html
  • object_history.html

要记住,管理界面本身就是一个应用,所以它会一次性加载第一个找到的模板。

我觉得你可以考虑的两个方案是:要么在项目中使用多个管理站点,要么为特定应用添加自定义视图。前者可能更简单,但如果你不想让用户单独登录来管理某些内容,那就会有问题。

撰写回答