gpt4 book ai didi

Django 管理员 : using different templates for two admin site

转载 作者:行者123 更新时间:2023-12-04 16:01:49 26 4
gpt4 key购买 nike

我有一个带有两个不同管理站点的 Django 项目(如 documentation 中所述)

我想为他们每个人都有不同的自定义模板。
我知道如何通过将 html 文件放在 myproject/templates/admin/目录中来覆盖自定义模板。
但是,两个管理站点都使用这些模板!

我不明白如何指定另一组自定义模板。

理想情况下,我想要:

# For first admin site
myproject/templates/admin-a/
base.html
base_site.html

和:
# For second admin site
myproject/templates/admin-b/
base.html
base_site.html

有任何想法吗 ?

谢谢,
斯蒂芬妮

最佳答案

第一个选择是有两个 ModelAdmin类,一个派生自第二个,带有一些定义模板的附加参数,这是管理代码的一部分:

# Custom templates (designed to be over-ridden in subclasses)
add_form_template = None
change_form_template = None
change_list_template = None
delete_confirmation_template = None
delete_selected_confirmation_template = None
object_history_template = None

以上变量可以在您的管理类中设置。

第二种方法是将基本模板名称传递给模板,然后将此(变量)用作 extends 的参数。模板标签。 Documentation here.

第三个选项是运行两个代码实例,但有两个具有不同设置变量的配置 TEMPLATE_DIRS ,第一个例如:
TEMPLATE_DIRS = ('templates-a',)

第二
TEMPLATE_DIRS = ('template-b', 'template-a')

在这里拥有两个模板目录为您提供了一个后备选项,因此您将只定义那些不同的模板。

第三个选项最容易实现(无需更改代码),但它需要 2 个独立的实例同时工作(消耗更多系统资源)。

关于Django 管理员 : using different templates for two admin site,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5420990/

26 4 0