This repository was archived by the owner on Aug 19, 2025. It is now read-only.

Description
Hello! I've run into an issue using select_related. I've noticed that where a relation is null and the related table is listed in select_related, there is no record retrieved for the original model. Using these models for example:
class Track(orm.Model):
# fields omitted, not relevant
class Post(orm.Model):
# snip...
track = orm.ForeignKey(Track, allow_null=True)
Let's say I have two posts with IDs 1 and 2. Post 2 does not have a related track. If I write the query Post.objects.select_related('track').all(), I only get post 1 returned.
However, if the select_from in build_select_expression is modified to include isouter:
select_from = sqlalchemy.sql.join(select_from, model_cls.__table__, isouter=True)
This seems to do the trick.