2010-11-23 29 views
5

Şablonda Django sürümünü görüntüleyen bir Django şablon etiketi oluşturmanın en kolay yolu nedir?Django şablon etiketi Django versiyonunu görüntülemek için

{{ django_version }} 

aşağıdaki Python kodu içinde Django versiyonunu verir biliyoruz:

I (, base.html benim durumumda) Django şablonunda aşağıdaki koymak istiyorum ve bu çıkış Django sürümüne sahip bir kabuk, ama bu kodu koymalıyız ve ben şablondan aramak gerekir nasıl nerede hakkında karıştı:

import django 
print django.VERSION 

GÜNCELLEME: Ben views.py aşağıdaki denedi, ama hiçbir şey de gösterir şablon:

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

cevap

3

altında ayarlarında bu bağlam işlemci eklemeyi unutmayın context_processors.py 1.3) - 'a ihtiyacım var, ayarlarında 'django_version' işlev adının TEMPLATE_CONTEXT_PROCESSORS kopyasına eklenmesini istedim. y:

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

context_processors.py (teşekkürler zsquare kadar):

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

gibi şablonlarınızın aşağıdaki koy base.html:

{{ django_version }} 
+0

Şimdi yeni sürümden kaynaklanabilir ama orada bulunan herhangi bir urls.py yapılandırmasını ayarlamak zorunda kalmam. Settings.py ve context_processors.py sayfamdaki değişikliği yaptığımı varsayarak, {{django_version}} numaralı telefonu arayabiliyordum. – whoisearth

2

Şablon metin yoluyla şablona değişken olarak django.VERSION sağlamalıdır. Bunu nasıl yapacağınızı bilmiyorsanız django eğitimini takip etmenizi veya django dokümanlarını okumanızı tavsiye ederim.

+0

Ben acemi bir programcıyım ve öğreticilere baktım, ancak bunu işe yaramış gibi görünmüyor. Örneği, views.py'de denediğim bazı kodlarla güncelledim. – sgriffee

+0

Şablonun görüntülendiğinden emin misiniz? Şablona bazı ek bilgiler eklediğinizde, ör. 'Django sürümü: {{django_version}}', sonucun django versiyonu: 'dır? –

+0

Evet, şablon görüntülenir. 'Django sürümü:' ifadesiyle ilgili tüm değişiklikler gösterilir, ancak {{django_version}} hiçbir şey çıkarmaz. – sgriffee

3

Basit bağlam işlemci istediğini yapacağını

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

Dont bunu (şu anda kullanmakta Django Şekilli TEMPLATE_CONTEXT_PROCESSORS

+0

Bu kulağa hoş geliyor. Yukarıdaki /mysite/blog/context_processors.py dosyasına koyduktan sonra aşağıdakileri /mysite/settings.py dosyasına koydum (ilk django.contrib.auth.context_processors.auth satırını ekledim çünkü onsuz bir hata var): {{django_version}} içeren şablonla desteklenen HTML sayfasında hiçbir şey görünmüyor. – sgriffee

+0

mysite.blog.context_processors (.py) ekleyebilmeniz gerekir. – zsquare

+0

Benim kötü… mysite.blog.context_processors olarak değiştirdim, ancak yine de gitmiyorum. Sanırım sorun yaratan başka bir şey olmalı. Buna devam edeceğim. Şerefe. – sgriffee