Обновление полей jQuery + Django [закрыто]

Необходимо обновлять поля в форме Django при выборе значения в поле из выпадающего списка Country. При обработке события jQuery никакие данные в поле формы не передаются. На стороне Django формируется список типа ['RUS', 'USA']. На самой странице, после выбора страны, поле Activity становится пустым. Как это исправить. Думаю, проблема в неправильном JQuery.

Шаблон:

...............

   <section class="site_filter">
        <div class="container-fluid">
            <div class="row">
                <div class="col-sm-2 col-2">
                    <div class="form-group">
                        <label for="country">Country</label>
                        <select class="form-control" id="country">
                         {% for obj in country %}
                            <option value='{{obj}}'>{{obj}}</option>
                                {% endfor %}
                        </select>
                    </div>
                </div>
                <div class="col-sm-2 col-2">
                    <div class="form-group">
                        <label for="Activity">Activity</label>
                        <select class="form-control" id="activity"> 
                                {% for obj in activity %}
                            <option value='{{obj}}'>{{obj}}</option>
                                {% endfor %}
                        </select>
                    </div>
                </div>
              </div>
        </div>
    </section>

      <script>
      /* jshint esversion: 6 */
         $('#country').on('change', function(){
           $.ajax({
                type : "GET", 
                url: "{% url 'info:get_cr_map' %}",
                data: {
                 "country" : $(this).val(),
                 "csrfmiddlewaretoken": '{{ csrf_token }}',
                 "dataType": "json",
                },      
                success: function(response){
                let activity_option = '';
                $.each(response["activity"], function (a, b) {
                activity_option += `<option value=${b}>` + b + "</option>";
            });
            $("#activity").html(activity_option);
                },
        error: function(response){
            console.log(response);
        }
            });
                 });    
      </script>

views.py

def cr_map(request):
    countries = Map.objects.exclude(country__isnull=True).\
        exclude(country__exact='').order_by('country').values_list('country').distinct()
    countries = [i[0] for i in list(countries)]    
    activity = Map.objects.exclude(activity__isnull=True).\
            exclude(activity__exact='').order_by('activity').values_list('activity').distinct()
    activity = [i[0] for i in list(activity)]
    return render(request, "info/cr_map.html", {"country": countries, 'activity': activity})
    
def get_cr_map(request):
    if request.method == "GET" and request.is_ajax():
       country  = request.GET.get("country")
       try:
           country_list = Map.objects.filter(country = country)
       except Exception as error:
           logging.error(error, exc_info=True)
           return JsonResponse({"success":False, 'data':country}, status=400)
       activities = list(set([country_list[i].activity for i in range(len(country_list))]))
       country_info = {
            "activity": activities,
        }
       return JsonResponse({"country_info":country_info}, status=200)
    return JsonResponse({"success":False}, status=400)
Вернуться на верх