1、傳引數
models.userinfo.objects.filter(id=3,name='alex')
2、傳字典
需要注意的是,傳入字典時,字典前面需要加**,記為字典
dic =
models.userinfo.objects.filter(**dic)
所以我們可以在在捕捉使用者輸入後,將輸入構造成字典,然後將字典當做引數傳入查詢
3、傳q物件,構造搜尋條件
a、在 filter() 等函式中關鍵字引數彼此之間都是"and" 關係。如果你要執行更複雜的查詢(比如,
實現篩選條件的or 關係),可以使用 q 物件。
b、q物件包括 and 關係 和or 關係
c、q 物件可以用 & 和 | 運算子進行連線。當某個操作連線兩個 q 物件時,就會產生乙個新的等
價的 q 物件。
如:下面這段語句就產生了乙個 q ,這是用 "or" 關係連線
q(question__startswith='who') | q(question__startswith='what')
d、每種查詢函式(比如 filter(), exclude(), get()) 除了能接收關鍵字引數以外,也能以位置引數的
形式接受乙個或多個 q 物件。如果你給查詢函式傳遞了多個 q 物件,那麼它們彼此間都是
"and" 關係。例如:
poll.objects.get(
q(question__startswith='who'),
q(pub_date=date(2005, 5, 2)) | q(pub_date=date(2005, 5, 6))
)
e: filter() 等函式 可以接受 q物件和條件引數,但q物件必須放在 條件引數前面
4、q物件使用例項:
首先還是需要匯入模組
from django.db.models import q
傳入條件進行查詢:
q1 = q()
q1.connector = 'or' #連線方式
models.tb1.objects.filter(q1)
合併條件進行查詢:
con = q()
q1 = q()
q1.connector = 'or'
q2 = q()
q2.connector = 'or'
con.add(q1, 'and')
con.add(q2, 'and')
models.tb1.objects.filter(con)
f物件
list.filter(bread__gte=f('bcommet'))
list.filter(bread__gte=f('bcommet') * 2)
list.filter(isdelete=f('heroinfo__isdelete'))
list.filter(bpub_date__lt=f('bpub_date') + timedelta(days=1))
q物件
from django.db.models import q
list.filter(q(pk_ _lt=6))
list.filter(pk_ _lt=6).filter(bcommet_ _gt=10)
list.filter(q(pk_ _lt=6) | q(bcommet_ _gt=10))
list.filter(~q(pk__lt=6))
多條件查詢
思路 1.獲取引數值 2.生成查詢條件 3.獲取查詢結果 4.繫結查詢選項 呼叫geturlhtml方法生成查詢url 例如 var y2013 pnvshihufu qbeijing sxuhuiqu 得到url變數值 protected string geturlval string name ...
多條件查詢
多條件查詢時在做專案的時候不可缺少的功能,雖然很簡單,但是自己還是記一下,對自己有用 查詢事件 private void button查詢 click object sender,eventargs e initial catalog uid pwd this.dataserver,this.dat...
多條件查詢
開發工具與關鍵技術 vs c 當使用者需要通過一定的條件進行範圍查詢的時候,在控制器中,就需要判斷使用者傳來的條件,一般使用者條件查詢會有下拉框,文字框等from表單元件 預設下拉框內的資料已繫結,本文暫不進行時間的範圍查詢 通過獲取這些元件的值,可以方便快捷的採集使用者的資訊 一 查詢 創鍵多條件...