Как создать inclusion tag, способный брать данные для шаблона из разных источников?
Я разрабатываю небольшую веб-галерею, и в этой галерее есть несколько типов вывода фотографий:
- Все фотографии, имеющиеся в базе данных
- Фотографии по определенному циклу фотографий
- Фотографии по определенному тегу
Для каждого типа вывода создана соответствующая страница (photos.html, serie.html, tag.html) и в этих страницах для вывода используется идентичный HTML-код:
{% load photos_tags %}
{% if photos|length == 0 %}
<p>Фотографии не найдены</p>
{% else %}
{% for p in photos %}
<div class="photo-container">
<h2>{{ p.title }}</h2>
<img src="{{ p.image.url }}" alt="Не удалось загрузить фотографию">
<p>{{ p.info }}</p>
<p>{{ p.year }}</p>
{% get_tags p as tags %}
<span>Теги: </span>
{% if tags|length == 0 %}
<span>Для данной фотографии теги не добавлены.</span>
{% else %}
{% for t in tags %}
{% if not forloop.last %}
<span><a href="{{ t.get_slug }}">{{ t.tag_name }}</a>,</span>
{% else %}
<span><a href="{{ t.get_slug }}">{{ t.tag_name }}</a>.</span>
{% endif %}
{% endfor %}
{% endif %}
</div>
<div class="line"></div>
{% endfor %}
{% endif %}
Я решил создать inclusion tag show_photos, который будет содержать этот код, чтобы уменьшить число повторений кода. Проблема состоит в том, что этот код должен получать разные photos в зависимости от того, какой тип вывода используется. Как прописать это в inclusion tag? Возможно, inclusion tag не очень для этого подходит? В таком случае, подскажите, какую технологию лучше использовать, чтобы сделать то, что я хочу