Шаблон содержит только последний элемент массива, переданный контекстом - PullRequest
1 голос
/ 10 апреля 2020

Я на Django 2.2, и я пытаюсь разобрать массив в моем HTML шаблоне. Но по какой-то причине отображается только последний элемент массива.

Вот mydata, мы можем, чтобы status был массивом str:

QueryDict: {'managername': ['blabla'], 'plant': ['FR'], 'status': ['a', 'b', 'c']}

This хранится в переменной, которую я передаю через контекст:

context = {
     'data': mydata
}
return HttpResponse(template.render(context, whatever))

В шаблоне HTML я делаю это:

<label> {{ data.status }} </label>

Когда я добираюсь до HTML, вот что отображено

c

Есть какой-то трюк, который мне не хватает, чтобы иметь весь массив, а не только последний элемент?

1 Ответ

0 голосов
/ 10 апреля 2020

Вот как QueryDict это для подписки :

QueryDict.__getitem__(key)

Возвращает значение для данный ключ Если ключ имеет более одного значения, он возвращает последнее значение . Вызывает django.utils.datastructures.MultiValueDictKeyError, если ключ не существует. (Это подкласс стандарта Python KeyError, поэтому вы можете продолжать ловить KeyError.)

Вы можете позвонить по .getlist() [Django -doc] в представлении:

context = {
    'data': mydata,
    <b>'statuses': mydata.getlist('status')</b>
}
return HttpResponse(template.render(context, whatever))

и в шаблоне используйте:

<label> {{ <b>statuses</b> }} </label>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...