@artinnok
бекенд-программист

Как пройти циклом через атрибуты объекта в шаблоне?

В шаблон передается объект bar с атрибутами attr1, attr2, attr3, attr4.
Необходимо обернуть значение каждого атрибут в див:
<div class="hello">
    {{ bar.attr1 }}
</div>
<div class="hello">
    {{ bar.attr2 }}
</div>
<div class="hello">
    {{ bar.attr3 }}
</div>
<div class="hello">
    {{ bar.attr4 }}
</div>


Как это сделать более коротко и просто - к примеру в цикле (в идеале, что-то бы такое простое):
{% for item in bar %}
    {{ item }}
{% endfor %}


Или сформировать список полей во вью и проциклиться по нему:
bar_attrs = ["attr1", "attr2", "attr3", "attr4"]

{% for attr in bar_attrs %}
    {{ getattr(bar, attr) }}
{% endfor %}


Как это сделать красиво и коротко?
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
@artinnok Автор вопроса
бекенд-программист
views.py:
bar_attrs = ["attr1", "attr2", "attr3", "attr4"]
context['bar_vals'] = [getattr(bar, i) for i in bar_attrs]


template.html:
{% for item in bar_vals %}
    <div class="hello">
        {{ item }}
    </div>
{% endfor %}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы