2018年6月2日土曜日
ウズマスター戦記
ウズマスター戦記 https://www.uzumax.org/2018/06/djangotemplatedoesnotexist.html

DjangoでTemplateDoesNotExistが表示された

DjangoでTemplateDoesNotExistとか出た人。


[ERROR] 2018-06-02 14:42:50,292 django.request:118      Internal Server Error: /start_samples/render_index      Thread-2
Traceback (most recent call last):
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\core\handlers\exception.py", line 35, in inner
    response = get_response(request)
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\uzu\PycharmProjects\heibon_django\start_samples\views.py", line 19, in render_index
    return render(request, 'start_samples/index.html')
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\shortcuts.py", line 36, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\template\loader.py", line 61, in render_to_string
    template = get_template(template_name, using=using)
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\template\loader.py", line 19, in get_template
    raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: start_samples/index.html
[ERROR] 2018-06-02 14:42:50,292 django.request:118      Internal Server Error: /start_samples/render_index      Thread-2
Traceback (most recent call last):
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\core\handlers\exception.py", line 35, in inner
    response = get_response(request)
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\uzu\PycharmProjects\heibon_django\start_samples\views.py", line 19, in render_index
    return render(request, 'start_samples/index.html')
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\shortcuts.py", line 36, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\template\loader.py", line 61, in render_to_string
    template = get_template(template_name, using=using)
  File "C:\Users\uzu\heibon-django\lib\site-packages\django\template\loader.py", line 19, in get_template
    raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: start_samples/index.html


原因

パスが通っていないのかもしれませんね。


対策

Djangoでは、setting.pyのTEMPLATESの変数にテンプレート置き場のフォルダのパスを通しておかないと認識しませんので。

やり方は二通りあります。

INSTALLED_APPSに追記

Djangoは、INSTALLED_APPSに作成した機能を登録しておけば、自動的にその配下のtemplatesフォルダにパスが通るようになっています。
確認し、記述が無ければ追記して下さい。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'start_samples', #追記
]


TEMPLATESに追記

プロジェクトの都合により命名規約に乗っかっていない場合は、TEMPLATESに直接パスを通す必要があります。
JSONのDIRSのところにフォルダパスを追記して下さい。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['start_samples/templates'],#追記
        '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',
            ],
        },
    },
]


これで解決のはずです。

バックナンバー


0 件のコメント:

コメントを投稿

お気軽にコメント下さい。