Django 多引數的ORM動態查詢

2021-10-09 04:12:22 字數 1291 閱讀 9895

前端頁面有幾個輸入框用於搜尋資料。使用者可以按需填入搜尋條件傳給後台,後台再按條件查詢返回。

查詢資料發現orm查詢中可以有filter(**dict)這種查詢方式,所以有以下查詢。

def search_stu_info(request):

argument = _getarguments(request)

try:

name = argument.get("name", "")

class_id = argument.get("class_id", "")

sno = argument.get("sno", "")

kwargs = {}

if name:

kwargs["name__contains"] = name

if class_id:

kwargs["class_id"] = class_id

if sno:

kwargs["son"] = sno

stu = student.objects.filter(**kwargs)

data =

for i in stu:

returndict =

return jsonresponse(returndict, json_dumps_params=)

except exception as e:

traceback.print_exc()

def _getarguments(request):

# 獲取請求引數

if request.method == 'get':

logging.error("收到get請求")

arguments = dict(request.get)

for arg in arguments:

if type(arguments[arg]) == type():

arguments[arg] = arguments[arg][0]

else:

logging.error("收到post請求")

logging.error("post-body")

logging.error(request.body.decode())

if "form" in request.content_type:

arguments = request.post

else:

arguments = json.loads(request.body.decode())

return arguments

Django 40 ORM多對多新增

前提 初始表資料 book表和author表為多對多關係,一本圖書可能有多個作者,乙個作者可能有多本書 新增add 可以為數字 即id 物件 物件列表 book表 author表 book authors表 關係表 from django.shortcuts import render 匯入顯示頁面...

Django 44 ORM多對多刪除

前提 初始表資料 remove 刪除,可以為數字 即id 物件 物件列表 delete篩選後刪除 clear清空 book表 author表 book authors表 關係表 from django.shortcuts import render 匯入顯示頁面的模組 from django.htt...

Django學習 9 ORM多對多操作

建立多對多 方式一 自定義關係表 class host models.model nid models.autofield primary key true hostname models.charfield max length 32,db index true ip models.generic...