Изменить SQL-запрос на Django

У меня есть веб-приложение, бэкенд которого использует Django. Я хочу изменить следующий SQL запрос на команду Django ORM:

    SELECT distinct t.id, t.title as Textbook,
GROUP_CONCAT(concat(ci.discipline_code, ci.code, " (" , ci.type , ")") SEPARATOR ', ') as CourseCode FROM 
TMS_UAT.bms_material m, 
TMS_UAT.bms_title t, 
TMS_UAT.bms_course c,
TMS_UAT.bms_courseinfo ci
where t.id = m.book_id 
and c.id = m.course_id 
and ci.id = c.id
and  isbn != 'NA'
GROUP BY t.id;

model.py
class CourseInfo(TimeStampedModel): # школа или центр code = models.CharField(max_length=20, db_index=True) #код = models.CharField(max_length=20, db_index=True) название = models.CharField(max_length=190) note_to_ca = models.CharField(max_length=2000) school = models.ForeignKey(School, on_delete=models.SET_NULL, blank=True, null=True) postgraduate = models.BooleanField(default=False) # указать курс аспирантуры discipline = models.ForeignKey(Discipline, on_delete=models.SET_NULL, blank=True, null=True) # не должно быть null код_дисциплины = models.CharField(max_length=20, blank=True, null=True) последний_семестр_представлен = models.CharField(max_length=20, blank=True, null=True) шаблон = models.CharField(max_length=120, choices=PRESENTATION_PATTERN, blank=True, null=True, help_text="Шаблон презентации") тип = models.TextField(blank=True) available = models.BooleanField(default=True) # означает Active или Retired

Как изменить SQL на команду Django?

Могу ли я использовать необработанные SQL команды в Django?

Вернуться на верх