django外键-left join

发布时间 2023-08-18 14:51:53作者: Mlianga

概括: 模型里加  null=True

 

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

# 使用方法
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就能实现…记录下