Мне интересно фильтровать таблицу по django orm в определенном порядке. По сути, это простой поиск по двум полям — имени и описанию. Я хочу отсортировать результат сначала по параллелизмам поля «имя», а затем по параллелизмам поля «описание». Вот пример необработанного sql:
WITH checkpoints AS (SELECT *
FROM checkpoints_view
WHERE ...)
SELECT *
FROM checkpoints
WHERE name ILIKE '%KEYWORD%'
UNION ALL SELECT *
FROM checkpoints
WHERE description ILIKE '%KEYWORD%' AND name NOT ILIKE '%KEYWORD%';
Как я могу сгенерировать такой sql в форме django?
Спасибо всем
P.S.: извините за мой английский, если я был не прав, я из неанглоязычной страны
class Checkpoint(models.Model, ReadOnlyModel):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=255, verbose_name='Наименование')
code_number = models.CharField(max_length=255, verbose_name="Код остановки")
description = models.CharField(max_length=255, verbose_name="Описание")
coordinate = models.PointField(verbose_name="Координата")
routes = ArrayField(models.IntegerField())
dates = ArrayField(models.DateField())
class Meta:
db_table = 'checkpoints_view'
managed = False
Почти все вы правы, но я хочу, чтобы результат был сначала упорядочен по строкам, прошедшим фильтр поля имени, а затем уже после всего этого - по строкам, прошедшим фильтр поля описания