开发者

Django template tag to display Django version

What is the simplest way to create a Django template tag which displays the Django version on a template?

I want to put the following in a Django template and have it output the Django version (in my case, base.html):

{{ django_version }}

I know that the following Python code outputs the Django version in a shell, but am confused about where I should put this code and how I should call it from the template:

import django
print 开发者_如何学Pythondjango.VERSION

UPDATE: I have tried the following in views.py, but nothing shows up in the template:

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} )


Figured this out (currently using Django 1.3) — I needed to append the function name 'django_version' to the TEMPLATE_CONTEXT_PROCESSORS tuple in settings.py:

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

context_processors.py (thanks to 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'}),
)

Put the following in your templates, such as base.html:

{{ django_version }}


A simple context processor would do what you want

context_processors.py

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

Dont forget to include this context processor in your settings under TEMPLATE_CONTEXT_PROCESSORS


You should provide the django.VERSION as variable to the template via the template context. I recommend following the django tutorial or read the django docs if you don't know how to do this.


You may want to use django.get_version() to get the django version in string, the django.VERSION returns a tuple.

>>> import django
>>> django.VERSION
(1, 11, 12, u'final', 0)
>>> django.get_version()
'1.11.12'


context_processors.py

import django

def django_version(request):
     return {
       'django_version': django.get_version() # django.VERSION (returns a tuple.)
     }

Include this context processor in your project settings.py file under TEMPLATE_CONTEXT_PROCESSORS:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜