Запрос на Django ORM

Подскажите, необходимо выполнить запрос с 2 left join из таблицы apps в ios и android.

Модели:

class App(Model):

    name = models.CharField()
    block = models.BooleanField()
    ....
class Ios(Model):

        apps = models.ForeignKey(App, on_delete=models.CASCADE)
        version = models.CharField()
        block = models.BooleanField()
        ....
class Android(Model):

        apps = models.ForeignKey(App, on_delete=models.CASCADE)
        version = models.CharField()
        block = models.BooleanField()
        ....

Пытаюсь сделать запрос, но не получается прокинуть условие для left join:

        queryset = models.App.objects.filter(name=name, block=False).values("name", "ios__version", "android__version")
        queryset.filter(pk=F('ios__projects'))
        queryset.filter(pk=F('android__projects'))

Но если в queryset.filter(pk=F('ios__projects')) пытаюсь через запятую указать ios__block=False, это условие игнорируется.

Помогите, пожалуйста. Мне нужно чтобы получился такой запрос:

SELECT app.name, ios.version, android.version
WHERE app.block IS FALSE 
FROM  app 
      LEFT OUTER JOIN ios
      ON (app.id == ios.apps and ios.block IS FALSE)
      LEFT OUTER JOIN android
      ON (app.id == ios.apps and android.block IS FALSE)

Ответы (0 шт):