【问题标题】:How to use 2 different change_list.html for 2 applications in the same django project如何在同一个 django 项目中为 2 个应用程序使用 2 个不同的 change_list.html
【发布时间】:2011-12-31 04:51:27
【问题描述】:

我在 django 项目中有 2 个应用程序。我想在 change_list.html 中为 2 个不同的应用程序添加不同的小部件。在settings.py中,分别在两个应用程序的模板的admin目录中添加change_list.html后, 模板目录 = ( "/home/path/project/application1/templates", "/home/path/project/application2/templates",
)

我注意到所考虑的 change_list.html 模板来自 application1。只有当我评论它时,才会考虑来自 application2 的模板。怎么走?我希望它们都被考虑用于 2 个不同的应用程序。请提出建议。

【问题讨论】:

    标签: python django


    【解决方案1】:

    阅读关于覆盖管理模板的部分:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates(更具体地说是https://docs.djangoproject.com/en/dev/ref/contrib/admin/#templates-which-may-be-overridden-per-app-or-model

    将您的change_list.html 放在admin/application1 中由TEMPLATE_DIRS 或模板加载器之一解析的文件夹之一中,该模板将仅用于application1

    您当前的代码总是告诉 django 将第一条路径上的匹配优先于第二条。

    【讨论】:

    • 我已将 change_list.html 放在 2 diff 下。像这样的应用程序:/home/project/application1/templates/admin/change_list.html /home/project/application2/templates/admin/change_list.html。在 settings.py 我添加了 :TEMPLATE_DIRS = ( "/home/project/application1/templates", "/home/project/application2/templates", ) 管理文件夹在我放置的 application/templates/ 之后2 个不同的 change_list.html。是否应该更改订单或广告我错过了 settings.py 中的某些内容?请指导。
    • 给你看一个确切的例子:将/home/project/application1/templates/admin/change_list.html移动到/home/project/application1/templates/admin/application1/change_list.html并将/home/project/application2/templates/admin/change_list.html移动到/home/project/application1/templates/admin/application2/change_list.html
    • 谢谢Yuji,我已按照您的指示进行操作,现在效果很好!它需要仔细阅读,尤其是上面提到的链接!
    • @user956424,没问题。所以现在您可以看到您可能应该将TEMPLATE_DIRS 设置移动到一个更通用的模板目录,并将admin/application1/change_list.htmladmin/application2/change_list.html 放在那个目录中。享受吧!
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 2019-11-29
    • 1970-01-01
    相关资源
    最近更新 更多