最近、Djangoをv1.3.1からv1.4にアップグレードしました。
私の老人settings.pyには
TEMPLATE_DIRS = (
os.path.join(os.path.dirname( __file__ ), 'templates').replace('\\', '/'),
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
これはポイントします/Users/hobbes3/Sites/mysite/templatesが、Django v1.4はプロジェクトフォルダーをアプリフォルダーと同じレベルに移動したため、私のsettings.pyファイルはでは/Users/hobbes3/Sites/mysite/mysite/なくになりました/Users/hobbes3/Sites/mysite/。
だから実際に私の質問は2つになりました:
os.pathから1つ上のレベルのディレクトリを見るにはどうすればよいですか__file__。つまり、相対パスで/Users/hobbes3/Sites/mysite/mysite/settings.py検索/Users/hobbes3/Sites/mysite/templatesしたい。- 私は維持されなければならない
template(クロスアプリテンプレートなどがあるフォルダadmin、registrationプロジェクトでは、など)/User/hobbes3/Sites/mysiteのレベルかでは/User/hobbes3/Sites/mysite/mysite?
settings.py複数のサーバーで同じものを使用しているため、パスをハードコーディングしないようにしています。唯一の違いは、データベース資格情報です。os.pathドキュメントを読んでいましたが、1つ上のディレクトリに移動するコマンドが見つかりませんでした。のようにcd ..。
os.path.join( os.path.dirname( __file__ ), '..' ) ..は、に渡されcdたときだけでなく、ファイルシステム全体の上のディレクトリを意味します。
os.path.join( os.path.dirname ( __file__), os.path.pardir)
osにcdしますか../mysite?または、任意のコマンド