テンプレート上でのMEDIA_URL呼び出しについて その2
こんにちは、昨日いきなり前歯が欠けた中田です。歯医者キラーイ(´∀`)
とりあえず、前回のエントリで頂いたコメントを基に
自前CONTEXT_PROCESSORを作って呼び出してみよう!と思いつつ
まずは /home/skfs/settings.py に
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'skfs.skyfish.context_processor.skyfish_context' , ←
)
を追加して、
/home/skfs/skyfish/context_processor.py を作成して中身を
def skyfish_context(request):
return {'SITE_URL':'http://192.168.1.123:8000/skyfish/'}
な感じで書いてみて、テンプレート上から {{ SITE_URL }} と呼び出そうと
してみたものの・・・。
特に何も表示されず_| ̄|○
まだどこかの設定抜けがあるんでしょうかねぇ(;´Д`)
※気になる事として、最初に生成されるデフォルトのsettings.pyには
TEMPLATE_CONTEXT_PROCESSORSの記述が元々あるとサイトには
書いてあったのですが、僕のsettings.pyには最初その記述がありませんでした。
(後でコピペして追加した)
この辺りに何か問題があるような気もしないでもないのですが・・・。
どうなんでしょう?(ノД`)
もっかい最初からキレイに作り直した方がいいのかも知れませんねぇ・・・。
posted by nakata | permalink | comments (2) | trackbacks (0)


コメント
毎度!
http://michilu.com/django/doc-ja/templates_python/#requestcontext
generic_viewを使わない場合には、ContextではなくRequestContextを用いなければいけないことに注意してください。
また、TEMPLATE_CONTEXT_PROCESSORSは生成されるsettings.pyには記述がありません。以下のように追加すると良いと思います(コピペでも大丈夫ですが)。
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + ('skfs.skyfish.context_processor.skyfish_contex',)
日本語訳されているドキュメントには一通り目を通された方が良いと思います。
O/Rの挙動については、英語ドキュメントに大量の動作例がありますので、そちらも御一読ください。
ではでは、skyfish楽しみに待っています:)
投稿者: everes | 2007年03月28日 01:02
>everesさん
なるほど!generic_viewを使う時と使わない時でやり方が異なるんですね。
(教えて頂いたサイトに確かに書いてありました。すみません・・・。)
とりあえず、settings.pyに
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + ('skfs.skyfish.context_processor.skyfish_context',)
をコピペで貼り付けて、viewには
from django.template import RequestContext の追加と、
render_to_responseの引数に
context_instance=RequestContext(request)
を追加してみると無事呼び出せました!有難うございますヽ(´∀`)ノ
毎度毎度ドキュメントにちゃんと目を通していれば解るような質問ばかりで
すみません・・・。今度からはドキュメントにしっかり目を通すようにしますm(_)m
投稿者: 中田 | 2007年03月28日 21:44