Django2.0フロントエンドからpostリクエストをバックエンドにコミットし、jsonデータを返します.
2727 ワード
送信ボタンの近くにフロントエンドを追加
次にjsファイルのajaxを次のように書きます.
次に、バックエンドに次のように書きます.
これにより、フロントエンドからダイナミックデータをバックエンドに転送してクエリーデータを取得し、フロントエンド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データに戻すプロセスが完了します.