2011-04-21 26 views
7

Ben aşağıdaki özel içerme etiketine sahip:Django - Özel dahil etme şablonu etiketi MEDIA_URL?

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth', 
    'django.core.context_processors.debug', 
    'django.core.context_processors.i18n', 
    'django.core.context_processors.media', 
    'context_processors.default_processors', 
    ) 

Ben work_path.html şablonu içinde MEDIA_URL erişmesi gereken fakat bağlam işlemciler uygulanmaz görünüyor:

from django.template import Library 
from django.db.models import Count 

register = Library() 

@register.inclusion_tag('projects/work_part.html', takes_context=True) 
def project_list(context): 
    return {'projects':context['projects']} 

Benim ayarlarından

şuna benzer özel şablonlar.

Şablon etiketimdeki MEDIA_URL öğesine nasıl erişirim? Bu mesajı gördüm: Access STATIC_URL from within a custom inclusion template tag ama STATIC_URL kullanmıyorum, yüklemesi gereken başka bir etiket kümesi var mı? tempatetag get_media_prefix etiketi "Yük medya" aradığını olduğunu bizler için statik olduğunu {% get_media_prefix %}

+0

Bağladığınız dizinin ilk yanıtında belirtildiği gibi: Neden şablon etiketi kodunuza MEDIA_URL aktarıyorsunuz ve şablona aktarmıyorsunuz? – arie

cevap

4

Sen (STATIC_URL olduğu gibi) aynı yapabilirim ...

{% load static %} 
... 
<img class="img" src="{% get_media_prefix %}{{ obj.image }}" alt="{{ obj.name }}" /> 
+0

Oh adam aptalca hissediyorum, neden denemedim bilmiyorum. Teşekkürler! – Hanpan

+1

"TemplateSyntaxError" etiketini aldığınızda, kullanıcı1653114'ün yanıtına bakın: http://stackoverflow.com/a/12307683/400691 – meshy

0

Ya da bu şablon etiketini yok sayıp hemen MEDIA_URL değişkenini kullanabilirsiniz. settings.py arasındaki tüm değişkenlere şablon HTML'den erişilebilir.