2011-04-21 13 views
7

tengo la siguiente etiqueta personalizada inclusión:Django: etiqueta de plantilla de inclusión personalizada MEDIA_URL?

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']} 

Mi configuración de este aspecto:

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

necesito para acceder a MEDIA_URL dentro de la plantilla work_path.html pero parece que los procesadores de contexto no se aplican a plantillas personalizadas.

¿Cómo accedo a MEDIA_URL dentro de la etiqueta de mi plantilla? Vi esta publicación: Access STATIC_URL from within a custom inclusion template tag pero no estoy usando STATIC_URL, ¿hay otro conjunto de etiquetas que debería cargar?

+0

Como se menciona en la primera respuesta al tema que vinculó: ¿Por qué no importa MEDIA_URL en el código de etiqueta de plantilla y lo pasa a la plantilla? – arie

Respuesta

4

Usted puede hacer lo mismo (como con STATIC_URL) utilizando el tempatetag {% get_media_prefix %}

+0

Oh, hombre, me siento estúpido, no sé por qué no pensé en probar eso. ¡Gracias! – Hanpan

+1

Cuando obtiene un 'TemplateSyntaxError' porque la etiqueta no existe, consulte la respuesta del usuario1653114: http://stackoverflow.com/a/12307683/400691 – meshy

12

La etiqueta está en get_media_prefix estática para aquellos de nosotros que estaban buscando a "medios de carga" ...

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

O simplemente puede ignorar esa etiqueta de plantilla y usar la variable MEDIA_URL de inmediato. Se puede acceder a todas las variables desde settings.py desde la plantilla HTML.

<img class="img" src="{{ MEDIA_URL }}{{ obj.image }}" alt="{{ obj.name }}" /> 
Cuestiones relacionadas