Django模板标签显示Django版本

sgr*_*fee 8 python tags django templates

创建一个在模板上显示Django版本的Django模板标签的最简单方法是什么?

我想将以下内容放在Django模板中并输出Django版本(在我的例子中,base.html):

{{ django_version }}
Run Code Online (Sandbox Code Playgroud)

我知道以下Python代码在shell中输出Django版本,但我对应该放置此代码的位置以及如何从模板中调用它感到困惑:

import django
print django.VERSION
Run Code Online (Sandbox Code Playgroud)

更新:我在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} )
Run Code Online (Sandbox Code Playgroud)

zsq*_*are 5

一个简单的上下文处理器会做你想做的

上下文处理器.py

import django
def django_version(request):
    return { 'django_version': django.VERSION }
Run Code Online (Sandbox Code Playgroud)

不要忘记在您的设置中包含此上下文处理器 TEMPLATE_CONTEXT_PROCESSORS


sgr*_*fee 5

想通了这一点(目前使用Django 1.3) -我需要追加的功能名称"django_version"到TEMPLATE_CONTEXT_PROCESSORS元组settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (  
    # ...  
    'myproject.context_processors.django_version',  
)
Run Code Online (Sandbox Code Playgroud)

context_processors.py(感谢zsquare):

import django
def django_version(request):
    return { 'django_version': django.VERSION }
Run Code Online (Sandbox Code Playgroud)

urls.py:

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

将以下内容放在模板中,例如base.html:

{{ django_version }}
Run Code Online (Sandbox Code Playgroud)