Django模板标签显示Django版本

9 投票
5 回答
3128 浏览
提问于 2025-04-16 07:29

最简单的方法来创建一个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 }}

撰写回答