0

私の Web アプリのコードは現在ドロップボックスにあります。職場や自宅のコンピューターで作業するときは、settings.py モジュールの TEMLPLATE_DIRS 変数を変更するだけです。

今晩、アプリを起動したときに問題が発生しました。TemplateDoesNotExist エラーが発生します。詳細は次のとおりです。

Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
/Users/me/Dropbox/app/MyApp/Users/me/Dropbox/app/MyApp/templates/App/Page 1/pageone.html (File does not exist)

基本的に、最初の/Users/me/Dropbox/app/MyAppは存在しないはずです。

設定.py

TEMPLATE_DIRS = (
    "Users/danielholmes/Dropbox/app/MyApp/templates/",
)

これはばかげていると思います。さらに情報が必要な場合はお知らせください。

どうもありがとう

4

1 に答える 1

1

設定ファイルのディレクトリ パスをハードロックしないでください。Python に絶対パス名を生成させます。これにより、プロジェクトは異なる環境間で移植可能になります。以下は、パスを定義するための適切なアプローチです (また、問題を解決する可能性があります)。

import os, sys

abspath = lambda *p: os.path.abspath(os.path.join(*p))

PROJECT_ROOT = abspath(os.path.dirname(__file__))
sys.path.insert(0, PROJECT_ROOT)

TEMPLATE_DIRS = (
    abspath(PROJECT_ROOT, 'templates'),
)
于 2013-01-23T19:12:26.150 に答える