Новичок в Django, поэтому в моей методологии может быть неточность.
У меня есть блок сложного HTML, который я повторно использую в нескольких частях моего сайта, но который заполнен различными данными. Я хочу превратить это в блок, который могу поставить где угодно.
Я прочитал теги включения и определил это так:
from django import template
register = template.Library()
@register.inclusion_tag('release_widget.html')
def release_widget(releases):
return {'release_list': releases}
Тогда, когда я использую это в своих шаблонах:
{% load release_widget %}
{% release_widget release_list %}
Это работает. Моя проблема заключается в том, что внутри файла release_widget.html я теряю доступ к моей переменной MEDIA_URL
, которая определяет, где искать ресурсы моего изображения. Я предполагаю, что это потому, что контекст не передается?
Я посмотрел на параметр takes_context=True
, но не смог его понять - похоже, он больше не принимает переменную, что не работает для меня - мне нужно иметь возможность передавать каждый словарь каждый раз я включаю блок.
Есть ли лучший способ сделать это? Должен ли я вообще использовать MEDIA_URL
? Я не могу просто использовать абсолютные пути, так как структура моего сайта похожа на site.com/article/something/123, а ресурсы находятся на site.com/assets/, и я не хочу, чтобы ../
везде.
спасибо,
Matt