« テンプレート上でのMEDIA_URL呼び出しについて | メイン | 素晴らしいDjangoのドキュメント »

テンプレート上でのMEDIA_URL呼び出しについて その2

2007年03月27日|category :
このサイトをはてなブックマークに追加 newsing it! この記事をクリップ! Save This Page to del.icio.us Buzzurlにブックマーク

こんにちは、昨日いきなり前歯が欠けた中田です。歯医者キラーイ(´∀`)

とりあえず、前回のエントリで頂いたコメントを基に
自前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さん

なるほど!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

コメントを投稿

(承認されるまでコメントが表示されない場合があります)