[解決済み] Django がテンプレートを探したりロードしたりするのに使うパスは何ですか?
質問
私は、次のような チュートリアル を Windows 7 環境で実行しています。
私の設定ファイルにはこのような定義があります。
TEMPLATE_DIRS = (
'C:/django-project/myapp/mytemplates/admin'
)
を取得しました。
base_template
をテンプレートから
admin/base_site.html
を、Django 自体のソースコードにあるデフォルトの Django admin テンプレートディレクトリ (django/contrib/admin/templates) 内から admin サブディレクトリに移動します。
myapp
ディレクトリに移動するよう指示されましたが、なぜかうまくいきません。
何が問題なのか、何か手がかりはありますか?
どのように解決するのですか?
これは Django のチュートリアルには載っていませんし、恥ずかしながら、パス変数に相対パスを設定する方が良いのです。このように設定すればいいのです。
import os.path
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
...
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media/')
TEMPLATE_DIRS = [
os.path.join(PROJECT_PATH, 'templates/'),
]
この方法で、Django プロジェクトを移動しても、パスルートは自動的に更新されます。これは、本番サーバをセットアップするときに便利です。
次に、 TEMPLATE_DIRS のパスが何か怪しいです。これはテンプレート ディレクトリのルートを指すはずです。また、それは末尾の
/
.
ここで推測するに、このように
.../admin/
ディレクトリがテンプレートルートでないことを推測します。もしまだ絶対パスを書きたいのであれば、管理者テンプレートディレクトリへの参照を削除する必要があります。
TEMPLATE_DIRS = [
'C:/django-project/myapp/mytemplates/',
]
とはいえ、テンプレートローダーはデフォルトで、テンプレートファイルを見つけるためにアプリのディレクトリを再帰的にたどるように設定されているはずです。
TEMPLATE_LOADERS = [
'django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source',
# 'django.template.loaders.eggs.load_template_source',
]
特に何かを上書きしたい場合を除き、管理者テンプレートをコピーする必要はないはずです。
まだ syncdb を実行していないのであれば、実行する必要があります。また、runserver を通して django をホストしている場合、メディアファイルを静的にサーバーに置く必要があります。
関連
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み] os/path 形式に関係なく、パスからファイル名を抽出します。
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】type()とisinstance()の違いは何ですか?)
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] Django の基本的な admin テンプレートを上書きしたり拡張する方法は?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法