Доступ к STATIC_URL из пользовательского тега шаблона включения - PullRequest
7 голосов
/ 28 марта 2011

Я создал пользовательский тег шаблона включения , который принимает один 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 из своего шаблона тега шаблона включения, не делая ничего противного, как ручное получение его из настроек и явная передача его в качестве переменной контекста?

Ответы [ 2 ]

14 голосов
/ 28 марта 2011

Хорошо. Просто понял это после публикации вопроса:

Вместо использования {{ STATIC_URL }} в своем шаблоне включения я использую тег get_static_prefix из тегов шаблона static:

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>

Обновление

Я считаю, что правильный способ сделать это сейчас (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>
2 голосов
/ 28 марта 2011

Внутри вашего кода тега шаблона вы можете делать то, что вам нравится: так что вы можете легко импортировать STATIC_URL из settings самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...