django外键-left join

概括: 模型里加  null=True

 

关于 Django ORM 外键值为空时,查询不到信息此条信息的解决办法

1
2
3
4
5
6
7
# 使用方法
Article.objects.all().select_related("category")
# 直接按照model方式这样查询,sql使用的inner join的查询,会导致没有关联的查询不出来
 
# 当腰使用left join时将外键改成以下
category = models.ForeignKey(to="Category", to_field="name",  on_delete=models.DO_NOTHING,
                                related_name="category", null=True)

  

本文主要是讲述如何使用left join的查询方式,前期使用select_related的时候刚好这里没有加null=True,执行的sql是inner join的方式;mysql上又设置了外键可为空,导致正式使用的时候那些外键为空的没有查询到…后面在网上一直未找到方法(也可能找寻的方式有误),后面一直琢磨看pycharm的sql出现了left join的语句,才发现加个null=True就能实现…记录下

posted on   Mlianga  阅读(154)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示