Доступ к списку в request.get - PullRequest
       2

Доступ к списку в request.get

0 голосов
/ 14 февраля 2019

У меня возникают проблемы при проверке параметров request.GET в моем шаблоне Django.

django.template.context_processors.request включен, поэтому я могу получить доступ к request.GET.

со следующими параметрами GETв моем URL: ?floor=1&floor=2&building=1, я пытаюсь сделать что-то вроде следующего:

{% if 1 in request.GET.floor %}IN{% else %}OUT{% endif %}

Я ожидаю, что это вернет IN.Однако отображается OUT.

При более подробном погружении:

{{ request.GET }}
{{ request.GET.floor }}
{{ request.GET.urlencode }}

Возвращается следующее:

<QueryDict: {'building': ['1'], 'floor': [1, 2]}>
2
building=1&floor=1&floor=2

Так выглядит мой список [1, 2] для 'floor' сводится к последнему элементу ('2').Какой лучший способ проверить полный список?

1 Ответ

0 голосов
/ 14 февраля 2019

Создайте фильтр.

templatetags/getlist.py

from django import template

register = template.Library()

@register.filter(name="getlist")
def getlist(request_dictionary, key):
    return request_dictionary.getlist(key) if request_dictionary else []

В вашем шаблоне:

{% load getlist %}
{% if 1 in request.GET|getlist:'floor' %}IN{% else %}OUT{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...