Как заполнить поле Django в форме, которая зависит от другого значения раскрывающегося списка Django, используя AJAX? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть форма Django, в которой есть раскрывающееся поле с использованием ModelChoiceField в forms.py для поля, которое извлекает данные из атрибута модели. Я хочу передать данные через AJAX в мои представления и запросить значение другого поля, используя данные через Ajax. И отправьте его обратно в шаблон так, чтобы это значение автоматически заполнялось в другом поле той же формы. Я могу получить данные через представления и запрос от нужной модели тоже. Что мне делать дальше, чтобы запрошенные данные были помещены в поле в форме?

Я уже пробовал использовать этот блог:

https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html

Но он предоставляет метод для использования его для 2 зависимых выпадающих списков, и я переделал код в соответствии с моими требованиями, но не сработал.

Я также пытался получить значение раскрывающегося списка через консоль, но оно не отображается в консоли, тогда как все остальные поля типа ввода показывают значение в консоли. Итак, я не уверен, попадают ли данные выпадающего списка через AJAX или нет. Должны ли данные выпадающего меню отображаться в консоли или нет?

AJAX из form_template.html

{% block javascripts %}
{{ block.super }}
<script>
  $("#id_name").change(function () {
  var url = $("#clientForm").attr("data-location-url");  
  var site_name = $(this).val();  
  $.ajax({                       
       url: url,                    
       data: {
         'site_n': site_name       
      },
    success: function (data) {   
     $("#id_site_location").html(data);  
     }
    });
   });
  </script>
{% endblock %}

функция views.py

def load_location(request):
   site_n = request.GET.get('site_n')
   locs = SiteInfo.objects.filter(site_name=site_n)
   return render(request,'main/site_location.html',{'locs':locs})

Sitr_location.html - это пустой HTML-код, в котором значения могут быть зациклены и отображены, как показано выше по ссылке в блоге.

...