Разбор всего списка в словаре querydict в Django

#javascript #django #parsing #dictionary #django-templates

#javascript #django #синтаксический анализ #словарь #django-шаблоны

Вопрос:

У меня есть querydict, который я передаю в шаблон Django. Этот querydict может выглядеть следующим образом:

<QueryDict: {u'VAR1': [u'val1', u'val2', u'val3'], u'VAR2': u'val4', u'VAR3': [u'val5'], u'VAR4': []}>

  • Словарь может быть больше, короче, но он всегда будет содержать поле, внутри которого есть список, и этот список также может быть пустым.

  • В предыдущем примере можно увидеть пару «ключ-значение», содержащую список («VAR1-val1_2_3»), пару «ключ-значение», содержащую пустой список («VAR4-[]»), пару «ключ-значение», содержащую список с одним элементом («VAR3-val5») и пара «ключ-значение», содержащая строку («VAR2-val4»)

  • В шаблоне я знаю имена ключей всех записей в querydict

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

var trial = ['val1', 'val2', 'val3'] для ключа «VAR1»

или

var trial = ['val5'] для ключа «VAR3»

или

var trial = [] для ключа «VAR4»

в зависимости от того, какой исходный список в словаре

Я перепробовал много вариантов, но мне это не удалось, пожалуйста, помогите?

Комментарии:

1. Пожалуйста, поделитесь со мной запросом django, который вы написали для получения Querydict?

Ответ №1:

Не передавайте querydict непосредственно в шаблон. Вместо этого преобразуйте его в строку JSON:

 data = json.dumps(dict(my_querydict))
  

(Сначала вам нужно преобразовать его в dict, чтобы обойти специальную обработку querydict многозначных ключей.)

Теперь ваш JS может получить к нему доступ в вашем шаблоне:

 var data = {{ data|safe }};
var var1 = data.var1;