神剑山庄资源网 Design By www.hcban.com
要用django的orm表达sql的exists子查询,是个比较麻烦的事情,需要做两部来完成
from django.db.models import Exists, OuterRef # 1. 定义子查询条件 relative_comments = Comment.objects.filter( post=OuterRef('pk'), # 注意外键关联方式:post为Comment表的字段,pk表示关联另一表主键 ) # 2. 使用annotate和filter共同定义子查询 Post.objects.annotate( # 使用exists定义一个额外字段 recent_comment=Exists(recent_comments), ).filter(recent_comment=True) # 在条件中通过检查额外字段实现exists子查询过滤
这种方式比较麻烦,有其它简便方式的欢迎分享
官网参考: https://docs.djangoproject.com/en/2.1/ref/models/expressions/#filtering-on-a-subquery-expression
补充知识:关于使用django orm 时的坑
跨app 时外键报错
class Host(models.Model): nid = models.AutoField(primary_key=True) hostname = models.CharField(max_length=32, db_index=True) ip = models.GenericIPAddressField(protocol=“ipv4”, db_index=True) port = models.IntegerField() # b = models.ForeignKey(to=“Business”, to_field=‘id') class HostToApp(models.Model): hobj = models.ForeignKey(to=‘Host', to_field=‘nid') aobj = models.ForeignKey(to=‘Application', to_field=‘id') class Application(models.Model): name = models.CharField(max_length=32)
以上 model 都在一个models 文件下时不会报错。 但是一旦出现跨app 时会报以下错误:
users.HostToApp.aobj: (fields.E300) Field defines a relation with model ‘Application', which is either not installed, or is abstract.
users.HostToApp.aobj: (fields.E307) The field users.HostToApp.aobj was declared with a lazy reference to ‘users.application', but app ‘users' doesn't provide model ‘application'.
解决方案:
1、
from xxxx.models import Application
2、
class HostToApp(models.Model): hobj = models.ForeignKey(to=‘Host', to_field=‘nid') aobj = models.ForeignKey(to=‘xxxx.Application', to_field=‘id')
第二步很重要
以上这篇使用 django orm 写 exists 条件过滤实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
神剑山庄资源网 Design By www.hcban.com
神剑山庄资源网
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
神剑山庄资源网 Design By www.hcban.com
暂无使用 django orm 写 exists 条件过滤实例的评论...
更新日志
2024年09月30日
2024年09月30日
- 孙悦.1996-伙伴【正大国际】【WAV+CUE】
- 纪钧瀚《钢琴阅读时光 雨中书店聆听轻音乐》[FLAC/分轨][399.62MB]
- 证声音乐图书馆《走向自然 疗心爵士乐》[320K/MP3][87.4MB]
- 证声音乐图书馆《走向自然 疗心爵士乐》[FLAC/分轨][184.94MB]
- 陈慧娴.2018-Priscilla-Ism演唱会3CD(2024环球红馆40复刻系列)【环球】【WAV+CUE】
- 郑秀文.1999-我应该得到(国)【华纳】【WAV+CUE】
- 陈家慧.2011-钢琴酒吧2CD【龙吟唱片】【WAV+CUE】
- 证声音乐图书馆《雨季 蓝调吉他 Rainy Blues》[320K/MP3][45.01MB]
- 证声音乐图书馆《雨季 蓝调吉他 Rainy Blues》[FLAC/分轨][109.13MB]
- 赞多《序章》[320K/MP3][45.54MB]
- 许巍.2004-每一刻都是崭新的【步升大风】【WAV+CUE】
- 群星.2024-四方馆影视原声带【韶愔音乐】【FLAC分轨】
- 陈雷.1997-安锁咧【金圆唱片】【WAV+CUE】
- 关淑怡.2013-MY.FAVORITE.SK.3CD【环球】【WAV+CUE】
- Sweety.2006-花言乔语【丰华】【WAV+CUE】