Django:使用filter的pk進(jìn)行多值查詢操作
由于想要做收藏夾的功能,所以希望能夠一次性查詢出所有id的對(duì)象,查看文檔,找到了如下方法
pk是primary key的縮寫,顧名思義pk_in就是primary key在某一個(gè)范圍內(nèi),具體操作(以自帶的User為例):
User.objects.filter(pk__in=[1,2,3])
這樣就可以去除id為1,2,3的User的對(duì)象了,很方便
注意是兩個(gè)下劃線
另外,還要pk__gt和pl_lt,都用于篩選范圍的
User.objects.filter(pk__gt=10)
意味著將要得到pk(一般也就是說id)大于10的對(duì)象(greater)
User.objects.filter(pk__lt=10)
意味著將要得到pk小于10的對(duì)象
補(bǔ)充知識(shí):Django 比較同一個(gè)model中的兩個(gè)字段,進(jìn)行條件過濾
django orm中怎么樣比較同一個(gè)模型中的兩個(gè)字段來過濾記錄呢?
例如一個(gè)合同字段,結(jié)束日期和終止日期的比較我們用sql很容易實(shí)現(xiàn)。
select *from contracts where
contract_stop_time<end_time
這里要是用db模塊中的F 庫才行 F object
from django.db.models import Ffrom contracts.models import Contractscontracts = Contracts.objects.filter(contract_stop_time__lt=F(’end_time’))
如果直接寫成
Contracts.objects.filter(contract_stop_time__lt=end_time)
或者
Contracts.objects.filter('contract_stop_time'<'end_time')
都是不行的。
以上這篇Django:使用filter的pk進(jìn)行多值查詢操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Android table布局開發(fā)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器2. IntelliJ IDEA安裝插件的方法步驟3. 理解PHP5中static和const關(guān)鍵字4. php模擬實(shí)現(xiàn)斗地主發(fā)牌5. spring acegi security 1.0.0 發(fā)布6. MyBatis中的JdbcType映射使用詳解7. vue 使用localstorage實(shí)現(xiàn)面包屑的操作8. Python random庫使用方法及異常處理方案9. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟10. Vuex localStorage的具體使用

網(wǎng)公網(wǎng)安備