出于某种原因,我需要在我的项目中有两个不同的 Django 管理站点实例——默认管理站点和一个从 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/时,没有任何反应。
有什么建议吗?
请您参考如下方法:
您可以覆盖 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"
