Django ORM JOIN and LEFT JOIN

Всем привет помогите не могу составить запрос на Django.Мне нужен вот такой запрос сделать.

SELECT * FROM "crudapp_infohospitals" AS "hospital"              
JOIN "crudapp_infohospitals" AS "filiate" ON ( "hospital"."id" = "filiate"."parentId_id")             
LEFT JOIN "crudapp_valuehospitals" AS "value" ON ("filiate"."id" = "value"."fkHospitals_id")               
WHERE "hospital"."userFK_id" = 1

не чего не выходит с LEFT JOIN. Много перерым тем в интернете и не получается. вот что пробовал:

InfoHospitals.objects.filter(parentId__userFK__id=1) вот тут INNER JOIN 
ValueHospitals.objects.filter(fkHospitals__parentId__userFK__id = id) тут два INNER JOIN .

class InfoHospitals(models.Model):
    avatar = models.ImageField(blank=True)
    names = models.CharField(max_length=255, blank=True, null=True)
    shortName = models.CharField(max_length=255, blank=True, null=True)
    parentId = models.ForeignKey('self', null=True, on_delete=models.CASCADE)
    userFK = models.ForeignKey(User, null=True, on_delete=models.CASCADE)


class ValueHospitals(models.Model):
    create_date = models.DateField(auto_now_add=True, db_index=True)
    subordination = models.CharField(max_length=255, blank=True, null=True)
    nameWLO = models.CharField(max_length=255, blank=True, null=True)
    subjectRF = models.CharField(max_length=255, blank=True, null=True)
    dislocationWLO = models.CharField(max_length=255, blank=True, null=True)
    fkHospitals = models.ForeignKey(InfoHospitals, on_delete=models.CASCADE)

Не совсем ответ на Ваш вопрос, но все же.

Метод raw() можно использовать для выполнения необработанных SQL-запросов, которые возвращают экземпляры модели. Пример из документации:

Person.objects.raw('SELECT id, first_name, last_name, birth_date FROM myapp_person')

https://docs.djangoproject.com/en/4.1/topics/db/sql/

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