django管理站点的两个实例 - 模板

时间:2013-12-08 18:23:44

标签: python django

由于某种原因,我需要在我的项目中有两个不同的Django Admin Site实例 - 默认管理站点和继承自AdminSite的类实例。

所以我创建了一个班级MyAdminSite(AdminSite)

然后我写了类似的东西:

my_admin_site = MyAdminSIte(name='myadmin')

然后我在urls.py中添加了正确的条目。

一切正常。

但现在我想自定义一些模板 在settings.py中:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'),)

然后我创建了目录:     /PROJECTDIR/templates/admin/PROJECTDIR/templates/myadmin

问题是,我无法在'myadmin'django管理站点中扩展/覆盖模板。 例如,如果我添加,让我们在/ templates / admin /中添加一个空的'base_site.html',那么两个管理站点都会变为空白。

但是当我将相同的文件添加到/ templates / myadmin /时,没有任何事情发生。

任何提示?

1 个答案:

答案 0 :(得分:1)

您可以覆盖AdminSite的类变量以指定不同的模板:

app_index_template = None
login_template = None
logout_template = None
password_change_template = None
password_change_done_template = None

您还可以覆盖ModelAdmin的类变量以指定不同的模板:

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

例如:

class MyAdminSite(AdminSite):
    app_index_template = "my/new/admin/app_index.html"