仅针对某些模型覆盖Django管理员change_list_results.html

时间:2011-05-08 19:44:13

标签: django django-models django-admin django-templates django-views

我想为我的一个模型覆盖templates / admin / change_list_results.html和templates / admin / change_list.html模板。 如何告诉管理员将此模型与我的应用程序中的所有其他模型区分开来,并呈现与默认模式不同的更改模板? 如果我只是编辑change_list_results.html,那么管理视图中的所有模型都会反映我的更改。

2 个答案:

答案 0 :(得分:3)

您可以参阅文档here

简短版本是您需要在模板路径中admin/your-app-name/your-model-name/change_list.html处设置自定义模板。它可以位于应用程序或根目录模板目录中。

一个问题是Django需要在找到django.contrib.admin中的默认“admin / change_list.html”之前找到它。如果它位于应用中,请确保该应用在django.contrib.admin中的 <{strong> INSTALLED_APPS之前列出。我通常只在我的根模板文件夹中放置管理员模板覆盖,因为它会在应用程序之前加载。

答案 1 :(得分:2)

恕我直言,因为从template_tag调用change_list_results.html - &gt; result_list。

https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/change_list.html#L91

https://github.com/django/django/blob/65cf82bd08631a7aa8d9dd007b2527476fa3304f/django/contrib/admin/templatetags/admin_list.py#L288

我想看看如果你覆盖或修补那个模板标签会发生什么。但是导入订单在这方面发挥了很大作用。