Django - Пользовательский тег включения шаблона MEDIA_URL? - PullRequest
7 голосов
/ 21 апреля 2011

У меня есть следующий пользовательский тег включения:

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

Мои настройки выглядят так:

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

Мне нужен доступ к MEDIA_URL в шаблоне work_path.html, но кажется, что контекстные процессоры не применяются к пользовательским шаблонам.

Как получить доступ к MEDIA_URL в теге моего шаблона? Я видел это сообщение: Доступ к STATIC_URL из пользовательского тега шаблона включения , но я не использую STATIC_URL, есть ли другой набор тегов, которые я должен загрузить?

Ответы [ 3 ]

12 голосов
/ 07 сентября 2012

Тег get_media_prefix статичен для тех из нас, кто хотел «загрузить медиа» ...

{% load static %}
...
<img class="img" src="{% get_media_prefix %}{{ obj.image }}" alt="{{ obj.name }}" />
5 голосов
/ 21 апреля 2011

Вы можете сделать то же самое (как с STATIC_URL), используя темпатег {% get_media_prefix %}

0 голосов
/ 12 июня 2016

Или вы можете просто игнорировать эти теги шаблона и сразу же использовать переменную MEDIA_URL.Все переменные из settings.py доступны из шаблона HTML.

<img class="img" src="{{ MEDIA_URL }}{{ obj.image }}" alt="{{ obj.name }}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...