SQL raw в Django запрос

Может ли кто-нибудь помочь мне изменить следующий запрос на Django a query, чтобы я использовал его в моем views.py?

select onhold_hour, onhold_date, clinic_id, hospital_id, region_id hospital_name, clinic,
(select string_agg(clinic, ', ') as other_clinics 
from hospitals_core_clinic 
inner join hospitals_core_schedule
on hospitals_core_clinic.id = hospitals_core_schedule.clinic_id 
where hospital_id = 263
and onhold_date = '2022-02-27')
from hospitals_core_schedule
inner join hospitals_core_clinic on hospitals_core_schedule.clinic_id = hospitals_core_clinic.id
inner join hospitals_core_hospital on hospitals_core_schedule.hospital_id = hospitals_core_hospital.id 
and hospital_id = 263 and onhold_date = '2022-02-27'

onhold_date и hospital_id будут пользовательскими переменными

Мои models.py следующие:

class Region(models.Model):
    region = models.CharField(max_length=100, unique=True)
    region_display = models.CharField(max_length=100, unique=True, null=True)
    slug = models.SlugField(max_length=255, unique=False, null=True)

    def __str__(self):
        return self.region

    def save(self, *args, **kwargs):
            if not self.slug:
                self.slug = slugify(unidecode(self.region))
            super(Region, self).save(*args, **kwargs)

class Hospital(models.Model):
    hospital_name = models.CharField(max_length=100, unique=True, blank=True, null=True)
    actual_name = models.CharField(max_length=100, unique=True, blank=True, null=True)
    #hospital_address = models.CharField(max_length=100, unique=False, blank=True, null=True)
    #hospital_phone =
    slug = models.SlugField(max_length=255, unique=False, null=True)

    def __str__(self):
        return self.hospital_name

    def save(self, *args, **kwargs):
            if not self.slug:
                self.slug = slugify(unidecode(self.hospital_name))
            super(Hospital, self).save(*args, **kwargs)

class Clinic(models.Model):
    clinic = models.CharField(max_length=100, unique=True, blank=True, null=True)
    clinic_display = models.CharField(max_length=100, unique=True, blank=True, null=True)
    slug = models.SlugField(max_length=255, unique=False, null=True)

    def __str__(self):
        return self.clinic

    def save(self, *args, **kwargs):
            if not self.slug:
                self.slug = slugify(unidecode(self.clinic))
            super(Clinic, self).save(*args, **kwargs)

class Schedule(models.Model):
    onhold_hour = models.CharField(max_length=50, blank=True, null=True)
    onhold_date = models.DateField(default=date.today)
    region = models.ForeignKey(Region, on_delete=models.CASCADE, null=True, related_name="area")
    hospital = models.ForeignKey(Hospital, on_delete=models.CASCADE, null=True, related_name="available_hospital")
    clinic = models.ForeignKey(Clinic, on_delete=models.CASCADE, null=True, related_name="clinic_type")
    created_at = models.DateTimeField(default=timezone.now)
    
    def __str__(self):
        return f"Date: {self.onhold_date} - Hour: {self.onhold_hour} - Region: {self.region} - Hospital: {self.hospital} - Clinic: {self.clinic} " 
enter code here

Как я могу изменить их для построения запроса?

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