gpt4 book ai didi

Django:使用filter的pk进行多值查询操作

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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 。

?
1
2
3
from django.db.models import F
from contracts.models import Contracts
contracts = 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进行多值查询操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/ksws0393238aa/article/details/41315923 。

最后此篇关于Django:使用filter的pk进行多值查询操作的文章就讲到这里了,如果你想了解更多关于Django:使用filter的pk进行多值查询操作的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com