22

Settings.py に自動的にリストされるはずですか、それとも追加する必要がありますか? 開発中の画像ファイルを提供するのに途方もなく苦労しています.ドキュメントは私の好みには簡潔すぎて、何らかの理由で明確に説明していません. template_context_processors が何であるかを確認したいのですが、どこにありますか? 私のsettings.pyファイルにはありません。通常、これを編集する必要がありますか?

("django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.contrib.messages.context_processors.messages")
4

2 に答える 2

45

あなたの中で設定settings.pyを定義することができますTEMPLATE_CONTEXT_PROCESSORS

ただし、django はこの設定のデフォルト値を定義しています。

("django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages")

デフォルトのプロセッサを維持するカスタム テンプレート コンテキスト プロセッサを追加する場合は、次の手順で実行できます。settings.py

import django.conf.global_settings as DEFAULT_SETTINGS

TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
    'custom_context_processors.my_context_processor',
)

TEMPLATE_CONTEXT_PROCESSORSドキュメントを参照してください。

于 2013-03-16T07:54:45.877 に答える
3

django python シェルにジャンプして設定をインポートすることで、アプリが使用しているコンテキスト プロセッサを確認できます。

$ manage.py shell
> from django.conf import settings
> settings.TEMPLATE_CONTEXT_PROCESSORS

それらをオーバーライドしていない場合は、デフォルトがレンダリングされます。

静的ファイルでは、django の開発サーバーが静的アセットを提供する場所である STATICFILES_DIRS を確認してください: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS

私はこれを私の中で使用しますsettings.py

from os.path import join, abspath
PROJECT_ROOT = abspath(join(dirname(__file__), '..', '..'))
STATICFILES_DIRS = [join(PROJECT_ROOT, 'public'), ]

プロジェクトのレイアウト方法に依存するため、これは同じではありません。

于 2013-03-17T00:14:13.143 に答える