Получение входного значения в представлении django после вставки html с помощью AJAX

#javascript #python #html #django #ajax

#javascript #python #HTML #django #ajax

Вопрос:

В моем html я вставляю код с помощью ajax-запроса, например:

 if (document.getElementById("div3").className == "active"){
            for (var [name, value] of Object.entries(institutionsByName)){
                  document.getElementById("institution-checkbox").innerHTML  =
                  '<label name="organization_label">'  
                  '<input type="checkbox" name="organization" value="'   value   '" id="institution-key"/>'  
                  '<span class="checkbox radio"></span>'   
                  '<span class="description">'   
                    '<div class="title">'  name   '</div>'  
                    '<div class="subtitle">'   
                    '</div>'  
                  '</span>'   
                '</label>'
          }    
        }
  

Затем я пытаюсь получить значение ‘organization’ с помощью представления django, например:

 institutions1 = request.POST.get('institution-key')
  

Однако он возвращает None,
Как я могу получить идентификатор моего учреждения / организации правильным способом в моем представлении django?

В html-коде один из них выглядит как:

 <input type="checkbox" name="organization" value="9" id="institution-key">
  

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

1. Можете ли вы попробовать этот запрос. POST[‘организация’]

2. Он также возвращает ‘None’

Ответ №1:

Несколько вещей:

  1. Если вы вставляете несколько элементов, не используйте один и тот же идентификатор, идентификаторы должны быть уникальными в HTML-документе (это не приводит к каким-либо ошибкам, но вместо этого используйте классы)
  2. Отправленная форма будет использовать название элементов формы, в этом случае organization это будет тот, который вам следует искать, а не institution-key
  3. Если у вас есть возможности для этого, возможно, загляните в библиотеку JS, которая значительно упростит манипулирование HTML.

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

1. request.POST.get(‘организация’) также возвращает None

2. Вы проверили request.POST , содержит ли оно какие-либо другие значения? Правильно ли JS отправляет форму? Правильно ли размещен ваш элемент ввода в элементе формы?

3. На самом деле я проделал какой-то трюк (на мой взгляд) — я создал другой ввод с классом ‘hidden’ и я установил в этот ввод установленный флажок с помощью javascript, тогда мое представление django без проблем принимает значение из этого ввода.