Django ORM left join unrelated QuerySet

Ниже приведен очень упрощенный пример того, что я хочу сделать с помощью django ORM. Пожалуйста, не концентрируйтесь на том, как сделать модели лучше (я стараюсь сделать это просто и наглядно), а на том, как получить данные из представленной ситуации. Итак, предположим две модели. Первая

class Car(models.Model):
    brand = models.TextField()
    model = models.TextField()
    segment = models.TextField()

хранит все автомобили со стоянки дилера (разных марок и сегментов). Время от времени дилер делает специальные предложения для автомобилей из данного сегмента, которые хранятся во второй таблице

class Discount:
  car_segment = models.TextField()
  price_cut = models.IntegerField()

Теперь мы хотим показать все автомобили выбранной пользователем марки, отсортированные по скидке. Обратите внимание, что большинство автомобилей имеют обычную цену (без price_cut, без "соответствующей" записи в таблице Discount. В плоскости SQL то, чего я хочу добиться, выглядит примерно так:

select * from (select * from Car where brand = "Toyota") left join Discount on segment=car_segment order by price_cut, segment;

Как это сделать, используя django ORM?

Например, у нас есть автомобиль:

brand model segment
toyota aygo A
toyota yaris B
toyota corolla C
toyota raw4 4x4
kia picanto A
kia rio C

и скидки

car_segment price_cut
A 1000
4x4 2000

и теперь я хочу иметь отфильтрованные автомобили из таблицы Car, отсортированные по price_cut, например

brand model segment price_cut
toyota raw4 4x4 2000
toyota augo A 1000
toyota yaris B
toyota corolla C
Вернуться на верх