版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/soulwyb/article/details/86598530
前端在提交按钮附近添加
{% 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数据的整个过程