@Fedor_PV

Как вставить переменную в путь к файлу в шаблоне Django?

Уважаемые профи Джанго, недостаток опыта вынуждает меня просить помочь в следующем вопросе:

Есть проект, в нем приложение 'countries' в котором каждый пользователь вводит определенные данные. Модуль PYGAL в зависимости от введеных данных строит картинку, которая в шаблоне загружается как:

{% load static %} 

<img src="{% static 'countries/World.svg' %}" >


'countries/World.cvg' - это путь. Картинка, созданная pygal, называется World.svg, а лежит она в папке static/countries/

Вот в чем вопрос - функция представления обработала данные, введенные пользователем, передала их PYGAL, он рисует для каждого пользователя его уникальную картинку. И, соответственно, шаблон Django должен считать {{ user }} и отобразить именно его уникальную картинку из множества других.

Для каждого отдельного пользователя шаблон должен загрузить разные картинки. Как это реализовать? Ведь я должен указать в шаблоне путь к картинке, включая её имя. Я могу заставить PYGAL для каждого пользователя сохранять картинки с разным именем, но как заставить шаблон понять, что для конкретного {{ user }} нужно грузить именно вот его картинку? Как вставить переменное имя картинки (зависящее от user) в тег

<img src="{% static 'countries/World.svg' %}" >

?
  • Вопрос задан
  • 1584 просмотра
Решения вопроса 1
@dkopitsa
разработчик-интроверт
тег static принимает строку либо переменную.

Если переменной в контексте нет:
{% with var1='user/123.svg' %}
<img src="{% static var1 %}">
{% endwith %}

если есть - то просто {% static varname %}

P.S. я бы вынес логику выбора картинки из шаблона во вьюху или методом в модель пользователя
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Muromati
@Muromati
<img src="{% static 'countries/'|add:YOUR_VAR|:add:'.svg' %}">
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы