【问题标题】:Django Rest - TemplateDoesNotExist: How to solve it?Django Rest - TemplateDoesNotExist:如何解决?
【发布时间】:2019-04-10 23:04:40
【问题描述】:

在任何人问之前,我已经检查了很多答案,并且“rest_framework”列在我的已安装应用程序中。我创建了一个新的 venv 并再次安装了所有依赖项,但仍然是同样的错误。
当我尝试使用 url http://127.0.0.1:8000/admin 时,我在 /Admin 处收到错误模板 TemplateDoesNotExist。当我尝试我的 API 的任何端点时,我都会收到相同的错误。

我有点困惑,因为这个项目 1 个月前在我的电脑上运行,但我的电脑出现问题,必须格式化。当我再次克隆项目时,出现此错误。

我要列出一些关于目录文件夹的设置,我对此有不好的预感。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'build')],
        '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',
            ],
        },
    },
]

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'build/static'),
]

文件夹结构为:

Appapi/
   movies/
     settings.py
     urls.py
     wsgi.py
   imdb/
     migrations/
          migrationsfiles....
     models.py
     views.py
     serializers.py
     ...
   venv/
manage.py
README.md
requirements.txt

还有一些其他的文件,比如 gitignore、procfile 等。

一些错误回溯: django.template.exceptions.TemplateDoesNotExist: index.html

line 47, in select_template
raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain)  

编辑:
Django 2.1 版;
我没有模板目录,我使用的是rest-framework来制作API,所以我没有用Django处理html、css和js。

【问题讨论】:

  • 在格式化之前检查您最初安装的版本。目前正在使用什么 django 版本.....

标签: python django templates exception django-rest-framework


【解决方案1】:

能否分享一下模板目录的位置。如果模板目录在 Appapi/ 或每个应用的目录中。

Django 版本?

我建议对 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',
            ],
        },
    },
]

TEMPLATE_DIRS = (os.path.join(BASE_DIR,  'templates'),)

在每个应用中添加一个目录templates

Appapi/
   movies/
     settings.py
     urls.py
     wsgi.py
   imdb/
     templates/
     migrations/
          migrationsfiles....
     models.py
     views.py
     serializers.py
     ...
   venv/
manage.py
README.md
requirements.txt

也许你可以检查重置迁移可能对你有帮助..

【讨论】:

  • Django 2.1 版;我刚刚进行了您建议的更改,但仍然出现同样的错误。
猜你喜欢
  • 2021-02-08
  • 2021-11-22
  • 1970-01-01
  • 2020-08-30
  • 2021-05-03
  • 1970-01-01
  • 2011-06-13
  • 2014-10-17
  • 1970-01-01
相关资源
最近更新 更多