Django:使用filter的pk進行多值查詢操作
由于想要做收藏夾的功能,所以希望能夠一次性查詢出所有id的對象,查看文檔,找到了如下方法
pk是primary key的縮寫,顧名思義pk_in就是primary key在某一個范圍內,具體操作(以自帶的User為例):
User.objects.filter(pk__in=[1,2,3])
這樣就可以去除id為1,2,3的User的對象了,很方便
注意是兩個下劃線
另外,還要pk__gt和pl_lt,都用于篩選范圍的
User.objects.filter(pk__gt=10)
意味著將要得到pk(一般也就是說id)大于10的對象(greater)
User.objects.filter(pk__lt=10)
意味著將要得到pk小于10的對象
補充知識:Django 比較同一個model中的兩個字段,進行條件過濾
django orm中怎么樣比較同一個模型中的兩個字段來過濾記錄呢?
例如一個合同字段,結束日期和終止日期的比較我們用sql很容易實現。
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進行多值查詢操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
1. python基于openpyxl生成excel文件2. Python基于jieba, wordcloud庫生成中文詞云3. JS中6個對象數組去重的方法4. python利用蒙版摳圖(使用PIL.Image和cv2)輸出透明背景圖5. win10下opencv-python特定版本手動安裝與pip自動安裝教程6. 淺談JavaScript的對象類型之function7. Python web如何在IIS發布應用過程解析8. 每日六道java新手入門面試題,通往自由的道路--多線程9. Python Sqlalchemy如何實現select for update10. Java下變量大小寫駝峰、大小寫下劃線、大小寫連線轉換
