Django2.0フロントエンドからpostリクエストをバックエンドにコミットし、jsonデータを返します.


送信ボタンの近くにフロントエンドを追加
{% csrf_token %}

次にjsファイルのajaxを次のように書きます.
        data = {
            no: NO,
            name: Name,
            company: company,
            product: product,
            salesman: salesman,
            area: area,
        };
        $.ajax({
                cache:false,
                type: "POST",
                url: '/contract/manage/',
                data: data,
                async: false,
                beforeSend: function(xhr, settings){
                    xhr.setRequestHeader("X-CSRFToken", $("input[name='csrfmiddlewaretoken']").val());
                },
                success: function(data){
                    console.log(data)
                },
            });

次に、バックエンドに次のように書きます.
import json
from django.http import JsonResponse
from django.core import serializers

    def post(self, request):
            #      
        if request.user.is_authenticated:
            #       
            No = request.POST.get('no', '')
            name = request.POST.get('name', '')
            company = request.POST.get('company', '')
            product = request.POST.get('product', '')
            salesman = request.POST.get('salesman', '')
            area = request.POST.get('area', '')
            search_dict = dict()
            #             
            if No:
                search_dict['NO'] = No
            if name:
                search_dict['name'] = name
            if company:
                search_dict['company'] = company
            if product:
                search_dict['product'] = product
            if salesman:
                search_dict['search_dict'] = search_dict
            if area:
                search_dict['area'] = area
            
            #  filter        (   ‘*’ )
            contract_list = Contract.objects.filter(**search_dict)
            # json  
            responses = {}
            try:
                responses["list"] = json.loads(serializers.serialize('json', contract_list))
                responses['stauts'] = 'success'
                responses['error_num'] = 0
            except Exception as e:
                responses['status'] = str(e)
                responses['error_num'] = 1
            return JsonResponse(responses)
        else:
            return JsonResponse({"msg":"fail"})

これにより、フロントエンドからダイナミックデータをバックエンドに転送してクエリーデータを取得し、フロントエンドjsonデータに戻すプロセスが完了します.