2010-11-23 19 views
5

एक Django टेम्पलेट टैग बनाने का सबसे आसान तरीका क्या है जो टेम्पलेट पर Django संस्करण प्रदर्शित करता है?Django संस्करण प्रदर्शित करने के लिए Django टेम्पलेट टैग

मैं एक Django टेम्पलेट में निम्नलिखित रखना चाहते हैं और (, base.html मेरे मामले में) यह उत्पादन Django संस्करण है:

{{ django_version }} 

मुझे पता है कि निम्नलिखित पायथन कोड में 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}) 

उत्तर

3

के अंतर्गत अपनी सेटिंग में इस संदर्भ प्रोसेसर लगा कि यह Django बाहर (वर्तमान में उपयोग कर शामिल करने के लिए 1.3) - मुझे की आवश्यकता है सेटिंग्स.p में TEMPLATE_CONTEXT_PROCESSORS tuple में फ़ंक्शन नाम 'django_version' संलग्न करें y:

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 }} 
+0

अब नए संस्करण के कारण हो सकता है लेकिन मुझे आपके पास कोई urls.py कॉन्फ़िगरेशन सेट करने की आवश्यकता नहीं है। मैं '{{django_version}} को सीधे मानने में सक्षम था कि मैंने अपनी सेटिंग्स.py और context_processors.py में परिवर्तन किया है – whoisearth

2

आपको टेम्पलेट संदर्भ के माध्यम से टेम्पलेट में django.VERSION चर के रूप में प्रदान करना चाहिए। मैं django ट्यूटोरियल का पालन करने की सलाह देता हूं या django दस्तावेज़ों को पढ़ता हूं यदि आपको नहीं पता कि यह कैसे करें।

+0

मैं एक नौसिखिया प्रोग्रामर हूं और ट्यूटोरियल्स को देखा है, लेकिन यह काम करने के लिए प्रतीत नहीं होता है। मैंने example.py में किए गए कुछ कोड के साथ उदाहरण अपडेट किया है। – sgriffee

+0

क्या आप सुनिश्चित हैं कि टेम्पलेट प्रदर्शित किया गया है? जब आप टेम्पलेट में कुछ अतिरिक्त जानकारी जोड़ते हैं, उदा। 'Django संस्करण है: {{django_version}}', आप कहते हैं कि आपका परिणाम है 'django संस्करण है:'? –

+0

हां, टेम्पलेट प्रदर्शित होता है। 'Django संस्करण है:' शब्द में कोई भी संशोधन दिखाता है, लेकिन {{django_version}} कुछ भी आउटपुट नहीं करता है। – sgriffee

3

एक साधारण संदर्भ प्रोसेसर आप क्या चाहते हैं करना होगा

context_processors.py

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

न भूल TEMPLATE_CONTEXT_PROCESSORS

+0

यह अच्छा लगता है। मैंने उपर्युक्त/mysite/blog/context_processors.py में रखा है और फिर निम्नलिखित में/mysite/settings.py में डाल दिया है (मुझे पहली django.contrib.auth.context_processors.auth लाइन जोड़नी थी क्योंकि इसके बिना मैं एक त्रुटि मिली):

TEMPLATE_CONTEXT_PROCESSORS = ( \t 'django.contrib.auth.context_processors.auth', \t 'mysite.blog.context_processors.py', ) 
अभी भी {{django_version}} युक्त टेम्पलेट द्वारा संचालित HTML पृष्ठ में कुछ भी दिखाई नहीं देता है। – sgriffee

+0

आपको mysite.blog.context_processors (.py के बिना) – zsquare

+0

मेरा बुरा जोड़ना चाहिए ... मैंने इसे mysite.blog.context_processors में बदल दिया है, लेकिन अभी भी नहीं जाना है। मुझे लगता है कि समस्या के कारण कुछ और होना चाहिए। मैं इसे रखूंगा। चीयर्स। – sgriffee

संबंधित मुद्दे