Django没有搜索APP_DIRS setings

时间:2017-01-12 22:03:28

标签: python django django-templates django-settings

我的模板目录与我的项目目录处于同一级别,因此我输入settings.py

'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,

但是Django没有在DIRS停止的应用中搜索模板

所有需要的应用都已安装

5 个答案:

答案 0 :(得分:2)

我今天得到了这个(我在django 2.1上)。解决方案是在设置的INSTALLED_APPS中添加“ myappname”(以前在较旧的django版本上必须执行的操作,但我认为这不再是必需的)。如果不这样做,django模板处理器就不会寻找myappname / templates / myappname /

我还像其他答案一样设置了TEMPLATES_DIRS,但是由于当前设置不足而导致的任何原因(我摔坏了笔记本电脑,所以我正在Windows上使用全新的python 3.7和全新的django进行django-ing 2.1(大约一个星期前我上次在django上工作时不必执行此步骤...)

答案 1 :(得分:1)

检查您的DIRS设置。它应该包括模板目录本身。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],

        # True or False, depends on your case.
        'APP_DIRS': True,

        # Default django setup.
        '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',
            ],
        },
    },
]

答案 2 :(得分:0)

只需将模板目录的名称放在TEMPLATES数组下的' DIRS' settings.py中的部分

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['your folder name'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'logyt_transporte.context_processors.module_variables',
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

答案 3 :(得分:0)

我的解决方案是将应用名称放在INSTALLED_APPS的末尾

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'posts'  # <= put your app name here i guess?
]

答案 4 :(得分:0)

我正在尝试从第三方程序包中覆盖模板。

我的问题是我有以下顺序的INSTALLED_APPS

INSTALLED_APPS = [
    # core
    # third-party
    # mine
]

因为我清楚地掩盖了文档,该文档告诉您这不是它的工作方式:https://docs.djangoproject.com/en/3.1/ref/settings/#installed-apps

特别是最后一行:

当多个应用程序提供相同版本的不同版本时 资源(模板,静态文件,管理命令,翻译), INSTALLED_APPS中最先列出的应用程序具有优先权。

按照后备顺序进行处理,并确保替代内容在原始版本 et voila 之前。叹气。