Django模板标签显示Django版本
最简单的方法来创建一个Django模板标签,以在模板中显示Django版本是什么?
我想在一个Django模板中放入以下内容,并让它输出Django的版本(在我的情况下是base.html):
{{ django_version }}
我知道以下Python代码可以在命令行中输出Django版本,但我不太清楚应该把这段代码放在哪里,以及如何从模板中调用它:
import django
print django.VERSION
更新:我在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} )
5 个回答
3
你应该把django.VERSION这个变量通过模板上下文提供给模板。如果你不知道怎么做,建议你看看django的教程或者阅读django的文档。
5
一个简单的上下文处理器就能满足你的需求。
文件名是 context_processors.py
import django
def django_version(request):
return { 'django_version': django.VERSION }
别忘了在你的设置里把这个上下文处理器加到 TEMPLATE_CONTEXT_PROCESSORS
下面。
6
我找到了这个解决办法(现在使用的是Django 1.3)——我需要在settings.py文件中的TEMPLATE_CONTEXT_PROCESSORS这个元组里添加一个函数名'django_version':
TEMPLATE_CONTEXT_PROCESSORS = (
# ...
'myproject.context_processors.django_version',
)
context_processors.py(感谢zsquare):
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 }}