2010-11-23 6 views
5

テンプレートにDjangoのバージョンを表示するDjangoのテンプレートタグを作成する最も簡単な方法は何ですか?Djangoのバージョンを表示するDjangoのテンプレートタグ

私はDjangoのテンプレートに次のように入れて、それをDjangoのバージョン(私の場合は、base.html)の出力を持つようにしたい:

{{ django_version }} 

私は次のPythonコードはでDjangoのバージョンを出力することを知っていますシェルが、私はこのコードを入れなければならないし、どのように私はテンプレートからそれを呼び出す必要がある場所について混乱しています:

import django 
print django.VERSION 

UPDATE:私はviews.pyに以下のことを試してみましたが、何もして現れていませんテンプレート:

import django  
from django.template import loader, Context 
from django.http import HttpResponse 
from django.shortcuts import render_to_response 

    def base(request): 
     django_version = django.VERSION 
     return render_to_response('base.html', {'django_version': django_version}) 

答えて

3

の下で、あなたの設定でこのコンテキストプロセッサを含めることを忘れcontext_processors.py 1.3.3) - には、関数名 'django_version'をTEMPLATE_CONTEXT_PROCESSORSタプルsettings.pに追加する必要がありましたY

TEMPLATE_CONTEXT_PROCESSORS = ( 
    # ... 
    'myproject.context_processors.django_version', 
) 

context_processors.pyzsquareのおかげで):

import django 
def django_version(request): 
    return { 'django_version': django.VERSION } 

urls.py

urlpatterns += patterns('django.views.generic.simple', 
    (r'^$', 'direct_to_template', {'template': 'base.html'}), 
) 

など、あなたのテンプレートに次のように入れてbase.html

{{ django_version }} 
+0

新しいバージョンがリリースされている可能性がありますが、そこにあるようなurls.py設定を設定する必要はありませんでした。私はsettings.pyとcontext_processors.pyで変更を加えたと仮定して '{{django_version}} 'を直接呼び出すことができました – whoisearth

2

django.VERSION変数をテンプレートコンテキストを介してテンプレートに提供する必要があります。私はdjangoのチュートリアルに従うことをお勧めしますか、またはdjangoのドキュメントを読む方法がわからない場合は、djangoのドキュメントを読んでください。

+0

私は初心者のプログラマーであり、チュートリアルを見てきましたが、これを動作させるようには見えません。私はviews.pyで試みたコードでこの例を更新しました。 – sgriffee

+0

テンプレートが表示されていますか?テンプレートにいくつかの追加情報を追加すると、 'djangoバージョンは{{django_version}}'ですが、結果は 'The django version is:'ですか? –

+0

はい、テンプレートが表示されます。 'The django version is:'と表示されますが、{{django_version}}は何も出力しません。 – sgriffee

3

シンプルなコンテキストプロセッサは、あなたがやりたいだろう

import django 
def django_version(request): 
    return { 'django_version': django.VERSION } 

いけない。このうち(現在使用してジャンゴ考え出しTEMPLATE_CONTEXT_PROCESSORS

+0

これは良いと思います。 私は上記の/mysite/blog/context_processors.pyを入れて、次に/mysite/settings.pyに入れてください(最初のdjango.contrib.auth.context_processors.auth行を追加しなければなりませんでした。エラーが発生しました):

TEMPLATE_CONTEXT_PROCESSORS = ( \t 'django.contrib.auth.context_processors.auth', \t 'mysite.blog.context_processors.py', ) 
{{django_version}}を含むテンプレートでは、HTMLページにはまだ何も表示されません。 – sgriffee

+0

mysite.blog.context_processors(.pyなし)を追加する必要があります – zsquare

+0

私の悪い...私はmysite.blog.context_processorsに変更しましたが、まだ行っていません。私は問題を引き起こす何か他のものがなければならないと思う。私はそれを維持します。乾杯。 – sgriffee

関連する問題