关于Django:为应用程序中的模型覆盖管理字段集

Override admin fieldset for model in app

Django admin docs声明您可以通过将模板放在应用程序templates/admin文件夹的my_app/my_model子目录中来覆盖特定应用程序中特定模型的模板。

我正在尝试为my_app中的my_model覆盖includes/fieldset.html模板。将其保存为my_app/admin/my_app/my_model/includes/fieldset.html似乎无效,而my_app/admin/includes/fieldset.html却可行,但会覆盖管理站点中所有页面的模板。

有什么办法可以实现这种行为?


是的,此行为是正确的,因为并非每个模板或应用都使用此方法来覆盖每个模板,请阅读此内容。

允许的模板为:

  • app_index.html
  • change_form.html
  • change_list.html
  • delete_confirmation.html
  • object_history.html
  • popup_response.html
  • 因此,我要做的是针对每个应用程序和模型重写所有这些内容,或者将其添加到admin.py类change_form_template = 'admin/appname/customtemplate.html'中,这将使您完全掌控模板。您还可以使用内部包含项来更改所有内部模板。