[Python] DjangoORMF对象和Q对象查询

2124 1
Honkers 2022-11-9 12:44:09 | 显示全部楼层 |阅读模式
目录

    1.F对象查询2.Q对象查询

阅读文本前请参考此文章的数据表结构
Django提供了两个非常有用的工具:F对象和Q对象,方便了在一些特殊场景下的查询过程。

1.F对象查询

F对象用于操作数据库中某一列的值,它可以在没有实际访问数据库获取数据值的情况下对字段的值进行引用
使用F对象之前需要将它引入当前的环境中:
from django.db.models import F如果要查询up小于等于down的Comment:
comment = Comment.objects.filter(up__lte=F('down'))要查询所有up值大于down值2倍的Comment对象,可以这样实现:
comment = Comment.objects.filter(up__gt=F('down') * 2)使用F查询让表中的某个字段值+1:
comment = Comment.objects.get(id=1)
comment.up= F('up') + 1
comment.save()
2.Q对象查询

使用Q对象之前需要将它引入当前的环境中:
from django.db.models import Q如果想要查询up大于60或down大于60的所有Comment对象:
comment = Comment.objects.filter(Q(up__gt=60) | Q(down__gt=60))Q对象也可以与关键字参数组合在一起使用,但是在这种情况下,Django规定,Q对象必须放在前面:


多个Q对象可以使用“&”(与)、“|”(或)运算符组合,产生一个新的Q对象。可以使用“~”(非)运算符取反,即实现NOT查询
到此这篇关于Django ORM F对象和Q对象查询的文章就介绍到这了,更多相关Django F对象和Q对象查询内容请搜索中国红客联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持中国红客联盟!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4004
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行