【问题标题】:Django template variables with ajax带有ajax的Django模板变量
【发布时间】:2020-07-23 09:43:00
【问题描述】:

如何使用 Ajax 成功的响应数据更新 Django for 循环模板变量。对象的状态正在数据库中更新我只是无法让它更新模板。如果我删除 + response.applicant_pk 模板会更新,但始终只是 for 循环中的第一项

<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);
      },
    });
  });

【问题讨论】:

    标签: javascript ajax django-templates


    【解决方案1】:

    如果它对其他人有帮助:我没有将申请人 pk 添加到 div ID 中

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

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 2018-11-17
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 2020-02-06
      • 1970-01-01
      • 2016-10-31
      相关资源
      最近更新 更多