Django Как искать querydict в шаблоне?

Когда я смотрю в querydict с {{get_copy}}, он показывает

<QueryDict: {'grub_id__in': ['Yelek', 'Tunik', 'Tulum', 'Tshirt']}>

так как я знаю, что как искать querydict

{%for key,val in get_copy.items%}
{{key}}{{val}}
{%endfor%}

но он показывает только одно из значений val

вывод:

grub_id__in Tshirt

Добавьте пробел перед/после "%": {%_ .... _%}

Из QueryDict.items() объектов QueryDict[Django-doc]

Подобно dict.items(), за исключением того, что здесь используется та же логика last-value, что и getitem() и возвращается объект-итератор вместо объекта представления.

А QueryDict.__getitem__(key) как сказано

Возвращает значение для заданного ключа. Если ключ имеет более одного значения, возвращается последнее значение. Вызывает ошибку django.utils.datastructures.MultiValueDictKeyError, если ключ не существует.

.

Так что вы можете использовать QueryDict.getlist(key, default=None) как указано

Возвращает список данных с запрошенным ключом. Возвращает пустой список, если ключ не существует, а значение по умолчанию - None. Гарантированно возвращает список, если предоставленное значение по умолчанию не является списком.

.

В вашем views.py

from django.http import QueryDict
from django.shortcuts import render

def get_copy(request):
    data = QueryDict('grub_id__in=Yelek&grub_id__in=Tunik&grub_id__in=Tulum&grub_id__in=Tshirt')
    return render(request, 'test.html', {'get_copy':data.getlist('grub_id__in')})

А в вашем templates

{{get_copy}}

Выход

['Yelek', 'Tunik', 'Tulum', 'Tshirt']
Вернуться на верх