2011-09-19 10 views

答えて

25

あなたの質問のタイトルは、「ビュー」と「テンプレート」は互換性があるとみなします。現在のサイトをテンプレートで取得するには、テンプレートのレンダリングに使用するコンテキストに追加する必要があります。 RequestContextを使用している場合は、これを自動的に行うコンテキストプロセッサを作成することができます。

あなたがそうのようにこれを行うには、コンテキストプロセッサを書くことができます、そして、

from django.contrib.sites.models import Site 

def site_processor(request): 
    return { 'site': Site.objects.get_current() } 

あなたTEMPLATE_CONTEXT_PROCESSORSにそれを追加し、そのようにそれを使用します。bradleyayersプロセッサを使用して、

<h3>{{ site.name }}</h3> 
+0

助けを願って、私は右に、カバーされるべきである:

ので、プロセッサは、そのように見えるのだろうか?このためのコンテキストプロセッサは内蔵されていませんか? –

+0

はい、 'direct_to_template'は' RequestContext'を使いますが、Djangoにはコンテキストプロセッサーがないので、独自のコンテキストプロセッサーを書く必要があります。あるいは、現在のサイトをコンテキストに追加する引数を 'direct_to_template'に渡すこともできます。 –

+0

'site'ではなく' site_processor'という名前の関数はなぜですか? –

0

変なふうNull結果を与えたので、Siteフレームワークを使用する代わりに、リクエスト内でパラメータを使用しました。

def host_processor(request): 
    return { 'host': request.get_host() } 

が、それは私が `django.views.generic.simple.direct_to_template`を使用してい

関連する問題