Из sql в Django... я не понимаю

У меня есть 3 модели (protocollo_pratica, protocollo_soggetto и protocollo_anaprat) и мне нужно извлечь для каждого protocollo_pratica список soggetti с определенным "tipo", но я не понимаю как это сделать в django views. Большое спасибо за помощь. `


this is my models.py :
`
from django.db import models

# Create your models here.

class Soggetto(models.Model):
    cognome = models.CharField(max_length=100, null=True)
    nome = models.CharField(max_length=100, null=True)
    comune_nascita = models.CharField(max_length=100, null=True)
    data_nascita = models.DateField(null=True)
    codice_fiscale = models.CharField(max_length=16, null=True)


    def __str__(self):
        """String for representing the MyModelName object (in Admin site etc.)."""
        return  self.nome



class Pratica(models.Model):
    oggetto = models.CharField(max_length=100)
    anagrafe = models.ManyToManyField(Soggetto,
                                    through='Anaprat',
                                    through_fields=('pratica', 'soggetto'),)

    def __str__(self):
        """String for representing the MyModelName object (in Admin site etc.)."""
        return  self.oggetto 



class Anaprat(models.Model):
    tipo=models.CharField( max_length=50)
    pratica=models.ForeignKey("Pratica", related_name='pratiche', on_delete=models.CASCADE)
    soggetto=models.ForeignKey("Soggetto", related_name='soggetti', on_delete=models.CASCADE)

    def __str__(self):
        """String for representing the MyModelName object (in Admin site etc.)."""
        return  f"{self.tipo, self.soggetto}"`

and this is my sql query :

`SELECT 
p.id,
pa.tipo tipo,
ps.cognome,
ps.nome,
ps.data_nascita,
ps.comune_nascita
from
(SELECT 
id  id
from protocollo_pratica pp ) p,
protocollo_anaprat pa 
left JOIN  protocollo_soggetto ps 
on ps.id=pa.soggetto_id
where p.id=pa.pratica_id`

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