PostgreSQL 特有模型字段

QuerySet?API?


返回新?QuerySet?的方法

filter(**kwargs)

返回一個(gè)新的?QuerySet,其中包含與給定查找參數(shù)相匹配的對象。多個(gè)參數(shù)通過底層 SQL 語句中的?AND?連接。

exclude(**kwargs)

返回一個(gè)新的?QuerySet,其中包含與給定查找參數(shù)不匹配的對象。多個(gè)參數(shù)通過底層 SQL 語句中的?AND?連接,整個(gè)過程用?NOT()?括起來。

排序

order_by(*fields)

默認(rèn)情況下,QuerySet?返回的結(jié)果是按照模型?Meta?中的?ordering?選項(xiàng)給出的排序元組排序的。你可以通過使用?order_by?方法在每個(gè)?QuerySet?的基礎(chǔ)上覆蓋這一點(diǎn)。

舉例:Entry.objects.filter(pub_date__year=2005).order_by('-pub_date','headline')

上述結(jié)果將按?pub_date?降序排列,然后按?headline?升序排列。"-pub_date"?前面的負(fù)號表示降序。升序隱含的。

可以通過在表達(dá)式上調(diào)用?asc()?或?esc(),按?查詢表達(dá)式?排序:

Entry.objects.order_by(Coalesce('summary','headline').desc())

asc()?和?esc()?有參數(shù)(nulls_first?和?nulls_last)來控制如何對空值進(jìn)行排序。

反向查詢

reverse()

使用?reverse()?方法來反向返回查詢集元素的順序。第二次調(diào)用?reverse()?會將順序恢復(fù)到正常方向。

要檢索一個(gè)查詢集中的“最后”五個(gè)項(xiàng)目,你可以這樣做:

my_queryset.reverse()[:5]

去重

distinct(*fields)

返回一個(gè)新的?QuerySet,在其 SQL 查詢中使用?SELECT?DISTINCT。這將消除查詢結(jié)果中的重復(fù)記錄。

比較函數(shù)

范圍字段支持標(biāo)準(zhǔn)查詢:ltgtlte?和?gte。這些并沒有特別大的幫助——它們先比較下界,然后在必要時(shí)才比較上界。這也是用于按范圍字段排序的策略。最好是使用特定的范圍比較運(yùn)算符。

gt : 大于? (舉例:Entry.objects.filter(id__gt=4)? ? ? ? ? ? ? ? ? ? ? ? ?SQL 等價(jià)于:SELECT...WHEREid>4;)

gte : 大于等于

lt : 小于

lte : 小于等于

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容