1

次のメッセージが表示されます。プロジェクトサーバーがテンプレートを見つけられないことをある程度理解しています。ただし、テンプレートについて何が不満を言っているのか正確にはわかりません。何が起こっているのかについての別の説明を聞くのは素晴らしいことです。

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/polls/1/

Django Version: 1.4
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'polls',
 'django.contrib.admin')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')

Template Loader Error:
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/home/stanley/mytemplates/polls/detail.html, polls/poll_detail.html (File does not exist)
Using loader django.template.loaders.app_directories.Loader:
/usr/local/lib/python2.7/dist-packages/django/contrib/auth/templates/polls/detail.html, polls/poll_detail.html (File does not exist)
/usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/polls/detail.html, polls/poll_detail.html (File does not exist)



Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  136.                     response = response.render()
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in render
  104.             self._set_content(self.rendered_content)
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in rendered_content
  79.         template = self.resolve_template(self.template_name)
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in resolve_template
  55.             return loader.select_template(template)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in select_template
  193.     raise TemplateDoesNotExist(', '.join(not_found))

Exception Type: TemplateDoesNotExist at /polls/1/
Exception Value: polls/detail.html, polls/poll_detail.html
4

3 に答える 3

3

特に、「テンプレートが間違った場所にあると思います」というあなたの発言に反応するために、もう少し詳しく答えようと思います。これは、投稿したトレースバックを使用して簡単に解決できます。

それがあなたに最初に伝えることはあなたの環境についてのいくつかのことです-あなたは単にこれを無視することができます。これは、TemplateLoaderErrorには役立ちません。ただし、アプリのいずれかに特別なバージョンのPythonなどが必要な場合は重要になる可能性があります。

次に気付くのは、どのようなエラーが発生したかです。これは、特別な場合に非常に役立ちます。

Template Loader Error:
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/home/stanley/mytemplates/polls/detail.html, polls/poll_detail.html (File does not exist)

これを詳しく見ると、Djangoが指定されたテンプレートを見つけようとした場所と、それらを探している間に何が起こったのかが正確にわかります(ファイルは存在しません)。これは、テンプレートが本当に間違った場所にあるかどうかを確認するための解決策を見つけるのに役立ちます(これは、少し経験豊富なDjango開発者でも頻繁に発生します)。

次の部分はトレースバックです。プロジェクトフォルダにファイルが含まれていないため、この場合は無視してかまいません。もしそうなら、それはあなたが名前付きファイルに何かを台無しにした可能性があることを意味し、Djangoはあなたのコードが(おそらく)例外を引き起こした行を教えてくれます。

最後の部分は、発生した例外に関する情報です。この場合、TemplateDoesNotExistです。Djangoには、ここで見つけることができるいくつかの特別な例外があります。これら以外に、Djangoは標準のPython例外を発生させます。

あなたがすでに知っていることをあまり話さなかったといいのですが。

于 2012-05-31T09:31:29.807 に答える
0

settings.pyファイルのTEMPLATE_DIRSタプルにパスを指定した可能性があります。Djangoはそれらのディレクトリでのみhtmlテンプレートを検索します。したがって、次のパスをTEMPLATE_DIRSに追加します。

TEMPLATE_DIRS = ('/polls',)
于 2012-05-31T08:09:57.517 に答える
0

設定でこのようなことはありませんか?

PROJECT_ROOT = path.dirname(path.abspath(__file__)) #gets directory settings is in

TEMPLATE_DIRS = (
    PROJECT_ROOT+'/templates',
)
于 2012-05-31T08:04:28.837 に答える