使用自定义应用

时间:2015-04-22 13:00:50

标签: django django-admin django-settings

我正在开发一个django软件包,允许通过将应用程序放在django.contrib.admin行之前的INSTALLED_APPS中来覆盖管理主题。

我希望此应用程序具有多个主题,以便您可以通过在 settings.py 文件中设置变量来选择要使用的主题。所以,我的主题有这个结构:

myapp
|--templates
   |-- default
   |-- theme1
   |-- theme2

如果我将该变量设置为 theme1 ,则应该从目录templates/theme1加载模板。

现在,我已经在我的应用程序的__init__.py文件中写了这个:

from django.conf import settings

import os
BASE_DIR = os.path.dirname(__file__)

default_path = os.path.join(BASE_DIR, 'templates/default')
if hasattr(settings, 'ZONEADMIN_THEME'):
    path = os.path.join(BASE_DIR, 'templates/', settings.ZONEADMIN_THEME)
    settings.TEMPLATE_DIRS += ((path,) if os.path.isdir(path) else (default_path,))
else:
    settings.TEMPLATE_DIRS += (default_path,)

它有效,但我相信还有更好的方法。这段代码是app.ready函数中写入内容的一个示例吗?我应该在哪里覆盖TEMPLATE_DIRS变量?

0 个答案:

没有答案