Тег шаблона Django для отображения версии Django - PullRequest
7 голосов
/ 23 ноября 2010

Какой самый простой способ создать тег шаблона 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} )

Ответы [ 4 ]

5 голосов
/ 21 июня 2011

Понял это (в настоящее время используется Django 1.3) - мне нужно добавить имя функции 'django_version' к кортежу TEMPLATE_CONTEXT_PROCESSORS в settings.py :

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 }}
4 голосов
/ 23 ноября 2010

Простой контекстный процессор будет делать то, что вы хотите

context_processors.py

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

Не забудьте включить этот контекстный процессор в настройках под TEMPLATE_CONTEXT_PROCESSORS

2 голосов
/ 20 июня 2018

Вы можете использовать django.get_version() для получения версии django в строке, django.VERSION возвращает кортеж.

>>> import django
>>> django.VERSION
(1, 11, 12, u'final', 0)
>>> django.get_version()
'1.11.12'
2 голосов
/ 23 ноября 2010

Вы должны предоставить django.VERSION как переменную для шаблона через контекст шаблона. Я рекомендую следовать учебнику по django или читать документацию по django, если вы не знаете, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...