Sté*_*ane 6 django django-templates django-admin
我有一个Django项目,有两个不同的管理站点(如文档中所述)
我想为每个人设置不同的自定义模板.我知道如何通过将html文件放在myproject/templates/admin /目录中来覆盖自定义模板.但是,管理员站点都使用这些模板!
我不明白如何指定另一组自定义模板.
理想情况下,我希望:
# For first admin site
myproject/templates/admin-a/
base.html
base_site.html
Run Code Online (Sandbox Code Playgroud)
和:
# For second admin site
myproject/templates/admin-b/
base.html
base_site.html
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
谢谢,Stéphane
第一个选项是有两个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
Run Code Online (Sandbox Code Playgroud)
上述变量可以在您的管理类中设置。
第二种方法是将基本模板名称传递到模板中,然后使用此(变量)作为extends模板标记的参数。文档在这里。
第三个选项是运行两个代码实例,但两个配置具有不同的设置变量TEMPLATE_DIRS,第一个例如:
TEMPLATE_DIRS = ('templates-a',)
Run Code Online (Sandbox Code Playgroud)
第二
TEMPLATE_DIRS = ('template-b', 'template-a')
Run Code Online (Sandbox Code Playgroud)
此处拥有两个模板目录可为您提供后备选项,因此您将仅定义那些不同的模板。
第三个选项最容易实现(无需更改代码),但它需要 2 个独立的实例同时工作(消耗更多的系统资源)。
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |