多個字段模糊查詢, 括號中的下劃線是雙下劃線,雙下劃線前是字段名,雙下劃線后可以是icontains或contains,區別是是否大小寫敏感,豎線是或的意思
#搜索功能
@csrf_exempt#使用@csrf_exempt裝飾器,免除csrf驗證
def search_testCaseApi(request):
if request.method == 'POST':
name = request.POST.get('task_name')
updateUser=request.POST.get('task_updateUser')
if name=="" and updateUser=="":
obj_all = tnw_test_case_api.objects.filter(del_flag=0)
elif name!="" and updateUser=="":
obj_all = tnw_test_case_api.objects.filter(del_flag=0,case_name__contains=name)
elif name=="" and updateUser!="":
obj_all = tnw_test_case_api.objects.filter(del_flag=0,update_user__contains=updateUser)
else:
obj_all = tnw_test_case_api.objects.filter(del_flag=0,case_name__contains=name,update_user__contains=updateUser)
ApiCasesList = []
for li in obj_all:
need_interfacename = allFunction().get_interfaceName(li.id)
api_list, api_sum = allFunction().testIDConnect_needid(li.id)
if li.case_module is not None:
ApiCasesList.append({
"testCaseApi_id": li.id,
"testCaseApi_name": li.case_name,
"testCaseApi_sum": api_sum,
"testCaseApi_version": li.case_version,
"testCaseApi_module": li.case_module,
"testCaseApi_need_interfacename": need_interfacename,
"testCaseApi_createTime": str(li.create_time),
"testCaseApi_updateTime": str(li.update_time),
"testCaseApi_updateUser": li.update_user,
})
else:
ApiCasesList.append({
"testCaseApi_id": li.id,
"testCaseApi_name": li.case_name,
"testCaseApi_sum": 1,
"testCaseApi_version": li.case_version,
"testCaseApi_module": li.case_module,
"testCaseApi_need_interfacename": need_interfacename,
"testCaseApi_createTime": str(li.create_time),
"testCaseApi_updateTime": str(li.update_time),
"testCaseApi_updateUser": li.update_user,
})
# 將int類型使用dumps()方法轉為str類型
ApiCasesList_len = json.dumps(len(ApiCasesList))
# 構造一個字典
json_data_list = {'rows': ApiCasesList, 'total': ApiCasesList_len}
# dumps()將字典轉變為json形式,
easyList = json.dumps(json_data_list)
# 將json返回去,json的鍵值對中的鍵需要與前臺的表格field=“X”中的X名稱保持一致)
return HttpResponse(easyList)
以上這篇python Django中models進行模糊查詢的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。