我成功配置了django-admin-tools以供使用。我尝试创建自定义菜单as told in documentation,如下所示:
python3 manage.py custommenu
然而,这引发了ImproperlyConfugured
错误,说:
django.core.exceptions.ImproperlyConfigured: app_dirs must not be set when loaders is defined.
我查看了目录,menu.py已成功创建,但内容为空,与文档相对。
我对TEMPLATES
变量的描述如下:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'admin_tools.template_loaders.Loader',
],
'loaders': [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
'admin_tools.template_loaders.Loader',
],
},
},
]
这是否意味着我需要在创建任何应用之前安装django-admin-tools
?
答案 0 :(得分:11)
删除'APP_DIRS': True,
行。
答案 1 :(得分:1)
Erdin Eray,我知道已经有一段时间了,但是我遇到了TypeError: 'Loader' object is not iterable
,这是您在接受的答案的注释中描述的问题。发生这种情况是因为如上所述,我在admin_tools.template_loaders.Loader
中包含了context_processors
,这会导致错误。仅应将其包含在loaders
中。
答案 2 :(得分:1)
如果您想知道为什么需要删除'APP_DIRS': True,
才能使其正常工作,那么我建议您阅读文档-https://docs.djangoproject.com/en/dev/ref/templates/api/#django.template.loaders.app_directories.Loader
注意:请为您的Django版本使用相应的文档。
常规:
APP_DIRS
和选项loaders
不能同时使用,因此您有两个选择:
loaders
删除OPTIONS
APP_DIRS
问题:
由于Erdin要使用'admin_tools.template_loaders.Loader'
,因此他必须删除APP_DIRS
。但是,由于其他原因,您可能会翻滚这个问题,因此考虑选项1可能是值得的。