Могу ли я получить доступ к атрибутам первого объекта в списке в шаблонах Django? - PullRequest
5 голосов
/ 30 сентября 2010

У меня есть шаблон Django, который получает список объектов в переменной контекста browsers.

Я хочу выбрать первый объект в списке и получить доступ к одному из его атрибутов, например:

<a class="{{ browsers|first.classified_name }}" href="">{{ browsers|first }}</a>

Однако я получаю синтаксическую ошибку, связанную с выбором атрибута .classified_name.

Можно ли как-нибудь выбрать атрибут первого объекта в списке?

Ответы [ 3 ]

10 голосов
/ 30 сентября 2010

Вы можете использовать with-templatetag :

{% with browsers|first as first_browser %}
    {{ first_browser.classified_name }}
{% endwith %}
5 голосов
/ 30 сентября 2010

@ Lazerscience ответ правильный.Другой способ добиться этого - использовать индекс напрямую.Например,

{% with browsers.0 as first_browser %}
    <a class="{{ first_browser.classified_name }}" href="">{{ first_browser }}</a>
{% endwith %}
4 голосов
/ 30 сентября 2010

Кроме того, если вы просматриваете список с помощью тега {% for %}, вы можете игнорировать каждый объект, кроме первого, используя переменную forloop.first , например

{% for browser in browsers %}
    {% if forloop.first %}
        <a class="{{ browser.classified_name }}" href="">{{ browser }}</a>
    {% endif %}
{% endfor %}

Возможно, это менее понятно и менее эффективно.

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