Если модели связаны через ForeignKey:
то так:
marker.objects.filter(owner__is_active=True, is_active=True)
Да все норм. Через INNER JOIN. Я просто делал prefetch_related вместо select_related
marker = Marker.objects.filter(owner__id=2, is_active=True)
for ii in marker.select_related('owner'):
print(ii.owner.username)
print(ii.id)
Получается:
SELECT "marker"."id", "marker"."owner_id", "my_user"."id", "my_user"."username", ...
FROM "marker"
INNER JOIN "my_user" ON ( "marker"."owner_id" = "my_user"."id" )
WHERE ("marker"."owner_id" = 2 AND "marker"."is_active" = true)
Updated 24 Oct. 2015, 13:03 by Closius.