2011-03-28 17 views
7

के भीतर से STATIC_URL तक पहुंचें मैंने एक कस्टम inclusion template tag बनाया है जो एक एकल Update मॉडल ऑब्जेक्ट स्वीकार करता है।एक कस्टम समावेशन टेम्पलेट टैग

खाका टैग:

@register.inclusion_tag('update_line.html') 
def update_line(update): 
    return {'update': update} 

update_line.html:

<tr><td class="update">{{ update }}</td><td class="ack"> 
<img id="update-{{ update.pk }}" class="ack-img" src="{{ STATIC_URL }}img/acknowledge.png" alt="Acknowledge" /></td></tr> 

समस्या यह है कि {{ STATIC_URL }}, मेरे शामिल किए जाने के टेम्पलेट टैग टेम्प्लेट में उपलब्ध नहीं है, भले ही मैं उपयोग कर रहा हूँ है django.core.context_processors.static संदर्भ प्रोसेसर तो {{ STATIC_URL }} मेरे सभी 'सामान्य' टेम्पलेट्स के लिए उपलब्ध है जिन्हें एक के माध्यम से संसाधित नहीं किया जा रहा है। निष्कर्ष टेम्पलेट टैग।

क्या कोई तरीका है कि मैं अपने शामिल टेम्पलेट टैग टेम्पलेट के भीतर से STATIC_URL प्राप्त कर सकता हूं, बिना किसी समस्या के मैन्युअल रूप से इसे प्राप्त करने और इसे स्पष्ट रूप से संदर्भ चर के रूप में पास करने के बिना कुछ बुरा कर रहा है?

उत्तर

14

ठीक है। बस प्रश्न पोस्ट करने के बाद यह पता लगा:

update_line.html:

{% load static %} 

<tr><td class="update">{{ update }}</td><td class="ack"> 
<img id="update-{{ update.pk }}" class="ack-img" src="{% get_static_prefix %}img/acknowledge.png" alt="Acknowledge" /></td></tr> 

के बजाय मेरी शामिल किए जाने के खाके में {{ STATIC_URL }} का उपयोग कर, मैं static टेम्पलेट टैग से get_static_prefix टैग का उपयोग

अद्यतन

मैं (Django 1.5+) सही तरीका अब यह करने के लिए विश्वास करते हैं:

update_line.html:

{% load staticfiles %} 

<tr><td class="update">{{ update }}</td><td class="ack"> 
<img id="update-{{ update.pk }}" class="ack-img" src="{% static 'my_app/img/acknowledge.png' %}" alt="Acknowledge" /></td></tr> 
+0

मुझे लगता है कि ऐसा इसलिए है क्योंकि संदर्भ प्रोसेसर मैन्युअल रूप से प्रस्तुत टेम्पलेट्स पर लागू नहीं होते हैं (या समावेशन टेम्पलेट टैग का उपयोग करके प्रस्तुत किए जाते हैं)। आज मैंने जाना। – dgel

+1

Django 1.7 के साथ, यह '{% लोड स्थिर%}' – spg

2

अपने टेम्पलेट टैग कोड के अंदर, आप आप क्या पसंद कर सकते हैं: ताकि आप आसानी से से STATIC_URL आयात कर सकते हैं।

+1

हाँ का उपयोग करके भी काम करता है, मुझे पता था कि यह एक विकल्प था, लेकिन मैं सोच रहा था कि ऐसा करने का एक बेहतर तरीका है (यह बुरा तरीका नहीं है)। मैंने 'get_static_prefix' टेम्पलेट टैग को 'स्थिर' से इसके बजाय उपयोग करने का निर्णय लिया है। किसी भी तरह से अधिक django-esque लगता है। – dgel

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