【问题标题】:Django template loader not loading templates from file system. TemplateDoesNotExistDjango 模板加载器不从文件系统加载模板。模板不存在
【发布时间】:2017-04-20 16:13:39
【问题描述】:

操作系统:Windows 10,Django:1.10.4,Python:3.5.2

在上图中 django.template.loaders.filesystem.Loader 应该被列出,但它没有被列出。

这是否意味着它没有查看应用目录?

我的 settings.py(模板部分)

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',
            ],
        },
    },
]

settings.py 中的已安装应用部分

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

我的应用目录结构:

      • ...
      • urls.py
    • app_bar
      • ...
      • urls.py
    • db.sqlite3
    • manage.py

foo/urls.py

urlpatterns = [
    url(r'', include('app_bar.urls')),
    url(r'^admin/', admin.site.urls),
]

app_bar/urls.py

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

如果需要,我可以提供更多信息。

附:我想从我已安装的应用程序之一加载模板。我收到 TemplateDoesNotExist 错误。

【问题讨论】:

  • 也许你在DIRS里放了些东西?

标签: python django templates


【解决方案1】:

在上图中应该列出django.template.loaders.filesystem.Loader,但没有列出。

filesystem.loader 仅在TEMPLATES 设置中设置了DIRS 选项时有效。并且,在您的设置中,DIRS 设置为空列表。

由于APP_DIRS 设置为True,它试图在INSTALLED_APPS 中提到的应用程序中查找模板,在本例中为django.contrib.admin。您收到错误是因为该目录中不存在模板。

您需要检查您在 django 项目的某个应用程序中使用的模板是否。如果是,请在INSTALLED_APPS中加入。

【讨论】:

  • 我已经按照 Django 教程 docs.djangoproject.com/en/1.10/intro/tutorial01 所以在这里我做了一次“python manage.py startapp app_bar”。它应该在“INSTALLED_APPS”部分中输入一个条目,但它没有。我想这是主要问题。我说的对吗?
  • 如果您的模板包含在app_bar 应用程序中,则将其包含在INSTALLED_APPS 的末尾。如果模板在 django 项目目录中,那么也包括它。
  • 我在 INSTALLED_APPS 部分添加了 app_bar 条目并且它工作正常。我相信它应该由 Django 自动添加。也许在未来的版本中。
猜你喜欢
  • 2011-05-11
  • 2018-03-06
  • 1970-01-01
  • 2018-09-24
  • 2014-02-28
  • 1970-01-01
  • 2015-02-05
  • 2015-11-13
  • 1970-01-01
相关资源
最近更新 更多