それは一般的な初心者の問題のように思われるので、私は持っています。
私は最初のdjangoプロジェクトに取り組んでおり、ビューを設定すると「TemplateDoesNotExist」エラーが発生します。私は今これに多くの時間を費やしています-そして私はそれにたくさんのトピックがあることを知っていますが、今まで何も私を助けませんでした。
必要なすべての情報を提供できるといいのですが、上級のdjangoユーザーは、Imが間違っていることを直接確認できます。
開発サーバーを使用しています。およびWindows7およびsqlite3。
これは私が得るエラーです:
TemplateDoesNotExist at /skates/
allsk8s.html
Request Method: GET
Request URL: http://127.0.0.1:8000/skates/
Django Version: 1.4.3
Exception Type: TemplateDoesNotExist
settings.pyで、TEMPLATE_DIRSを次のように設定しました。
TEMPLATE_DIRS = (
r'H:/netz2/skateprojekt/templates/',
)
テンプレートローダーは次のようになります。
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
これは私の見解です:
from django.shortcuts import render_to_response
from django.template import RequestContext
from sk8.models import Sk8
def AllSk8s(request):
skates = Sk8.objects.all().order_by('name')
context = {'skates':skates}
return render_to_response('allsk8s.html', context, context_instance=RequestContext(request))
allsk8s.htmlにリンクする必要があります-リンクしているように見えますが、ファイルは間違いなく正しいフォルダーにありますが、ファイルが見つかりません。しかしあなたが見ることができるように:
Template-loader postmortem
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
H:\netz2\skateprojekt\templates\allsk8s.html (File does not exist)
これは私のurls.pyの一部です
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
(r'^skates/$', 'sk8.views.AllSk8s'),
)
これがシステムパスです。
H:\netz2\skateproject\templates
テンプレートフォルダには、私が理解している限り、allsk8s.htmlというファイルがあります。これは機能するはずです。誰かが私を助けてくれることを本当に望んでいます。これは私がこのような問題に遭遇したのは2回目であり、問題を理解することはできません。
事前に感謝しますダニエル
編集:
これをsettings.pyに追加しようとしました:
import os
DIRNAME = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRSを次のように変更しました。
TEMPLATE_DIRS = (
os.path.join(DIRNAME, r'H:/netz2/skateprojekt/templates/'),
)
私が読んだのでそれは助けになるでしょう-しかしそれでも同じエラーを返しました-それで私はそれを再び元に戻しました。;(
編集:
また、間違ったURLを入力すると、次のエラーがスローされることを確認しました。
Using the URLconf defined in skateproject.urls, Django tried these URL patterns, in this order:
^admin/
^skates/$
したがって、スケートのURLはそこにあるはずですが、「解決」することはできません。私はそれを取得できません:(
編集:
私は今日何か新しいことを発見しました、テンプレートローダーの事後分析はそれがこれらのディレクトリもチェックすると言います:
Using loader django.template.loaders.app_directories.Loader:
C:\Python27\lib\site-packages\django\contrib\auth\templates\allsk8s.html (File does not exist)
C:\Python27\lib\site-packages\django\contrib\admin\templates\allsk8s.html (File does not exist)
そこで、テンプレートファイルをそこに移動して、新しいエラーを受け取りました。これは、htmlファイルをansiからutf8およびtadaに変換することで修正されました。これは機能しました。残念ながら、このフォルダ内のテンプレートファイルがプロジェクトの一部ではない原因となるようにすることはできません。ファイルを元の場所に戻すと、古いエラーが発生しました:(