Django шаблонные переменные с ajax - PullRequest
0 голосов
/ 10 апреля 2020

Как обновить Django для переменной шаблона l oop, используя данные ответа при Ajax успехе. Состояние объекта обновляется в базе данных, я просто не могу получить его для обновления шаблона. если я удаляю + response.applicant_pk, шаблон обновляется, но всегда только первый элемент в для l oop

<div id="app_status_" class="_button__base_ _blue__button">
    <strong>{{applicant.status}}</strong>
</div>

def applicant_status_change(request, applicant_id):

    response_data = {}
    if request.method =='POST' and request.is_ajax():
        try:
            applicant = Applicant.objects.get(pk=applicant_id)
            position = applicant.applied_for.id
            position = Position.objects.get(id=position)
            count = position.get_all_applied_users_count()
            applicant.status = request.POST['applicant_status']
            applicant.pk = request.POST['pk']

            response_data = {
            "applicant_status": applicant.status,
            "applicant_pk":applicant.pk
            }
            applicant.save()
            return JsonResponse(response_data)
        except Applicant.DoesNotExist:
            return JsonResponse({'status':'Fail', 'msg': 'Object does not exist'})
    else:
        return JsonResponse({'status':'Fail', 'msg':'Not a valid request'})



    $(".dropdown-item").click(function (e) {

    var applicant_stat = $(this).text();
    var pk = "{{ applicant.pk }}"

    $.ajax({
      url : '/dashboard/applicant/status/{{  applicant.pk  }}/',
      type : "POST",
      data : {
        'csrfmiddlewaretoken' : "{{  csrf_token  }}",
        'applicant_status': applicant_stat,
        'pk': pk
      },
      success: function(response) {
        $('#app_status_'+ response.applicant_pk).empty().append(response.applicant_status);
      },
    });
  });

1 Ответ

0 голосов
/ 11 апреля 2020

, если это кому-нибудь еще поможет: я не добавил pk заявителя в идентификатор div

<div id="app_status_{{applicant.pk}}" data-pid="{{ applicant.pk }}" class="_button__base_ _blue__button">{{applicant.status}}
</div>
...