Могу ли я получить доступ к определенным значениям ключа в словаре из шаблона django? - PullRequest
6 голосов
/ 29 марта 2012

Есть ли для этого какая-либо функция get ()?

{% for key, value in choices.items %} 
  <li>{{key}} - {{value}}</li>
{% endfor %}

Из python у меня есть функция get () для получения значений из определенного ключа.Но я не смог найти подходящий способ сделать это с помощью тегов шаблонов django.Так что мне интересно, возможно ли это?Мне нужно получить конкретные значения, поскольку использование циклов добавляет много новых строк в источник HTML.

Или следует позаботиться о выводе внутри представления перед отправкой его в шаблон, какой метод лучше?

Ответы [ 6 ]

9 голосов
/ 29 марта 2012

Вы можете использовать {{ choices.items.key }} для доступа к определенному элементу dict.

Хотя в HTML-коде нет причин заботиться о пробелах;типичный конечный пользователь не имеет никакого смысла читать его, и, если ему любопытно, он всегда использует программу просмотра DOM или запускает ее через средство HTML-кода.

4 голосов
/ 29 марта 2012

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

{{ choices.items.somekey }}

даст вам значение choices.items['somekey'], если choices.items равно dict.

3 голосов
/ 15 марта 2013

Я думаю, что вы продвинулись вперед, просто чтобы поделиться моей точкой Вы могли бы сделать это так же

{% for value in dict %} 
    {{value}}                                                                   
{% endfor %}

или с ключом, значение как

{% for key,value in dict.items %}
    {{key}} : {{ value }}
{% endfor %}
1 голос
/ 29 марта 2012

Если тип выбора - DICT, как {}.

{{choices.somekey|default:""}}

Если choices.items - тип DICT.

{{choices.items.somekey|default:""}}

Попробуйте посмотреть небольшой пример.

# In Views.py
def dict_test(request):
    my_little_dict = {"hi": "Hello"} 
    ....
# in Template
{{my_little_dict.hi}}
0 голосов
/ 26 апреля 2016
{{ choices.values }}

Это дает вам список всех значений в словаре одновременно.

0 голосов
/ 17 декабря 2015

Вы можете указать как {{ choices.key_name }} Это сработало для меня. Просто просто

...