Использование отношений многие ко многим и один ко многим между 3 моделями в одно время [закрыто]

Здравствуйте, я новичок в django, Я хотел бы получить вашу помощь по вопросу, который меня беспокоит. Я знаю, как сделать отношения один ко многим и многие ко многим с помощью Django, только я особенно застрял на данный момент. У меня есть три таблицы (деталь, документ, папка), таблица детали и документа связаны отношениями "многие ко многим", а таблица детали и папки связаны отношениями "один ко многим". Я хочу, чтобы при выборе шаблона в папках все документы, связанные с ним, появлялись в папках.


class Motif(models.Model):
    m_designation=models.CharField(max_length=50)
    document=models.ManyToManyField(Document)
    create_time=models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return self.m_designation
# Create your models here.

class Dossier(models.Model):
    
    statut=(('Valider en Agance','Valider en Agance'),
            ('Valider controle BEAC','Valider controle BEAC'),
            ('Rejeter Controleur BEAC','Rejeter Controleur BEAC')
            )
    devise=(('Euro','EUR'),
            ('Dollar Americain', 'USD'),
            ('YEN','JPY'),   
            ('MAD','MAD')
            )
    agence=models.ForeignKey(Agence,null=True,on_delete=models.SET_NULL)
    raison_sociale=models.CharField(max_length=50)
    Numero_de_Compte=models.CharField(max_length=50)
    motif=models.ForeignKey(Motif,null=True,on_delete=models.SET_NULL)
    devise=models.CharField(max_length=50,choices=devise,default='EUR')
    cours=models.FloatField(default=650)
    mt_devise=models.FloatField()
    beneficiaire=models.CharField(max_length=50)
    statut=models.CharField(max_length=50,choices=statut,default='Valider en Agance')
    create_time=models.DateTimeField(auto_now_add=True)
    
    
    def  mt_xaf(self,):
            return int (self.mt_devise * self.cours)
# Create your models here.

class Document(models.Model):
    designation=models.CharField(max_length=50)
    create_time=models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return self.designation

Допустим, у вас есть

class Pattern:
    documents = Many2Many(Document)

class Folder:
    pattern = ForeignKey(Pattern)

class Document:
    ...
    

Затем вы можете извлечь все документы из папки, как показано ниже:

folder.pattern.documents.all()
Вернуться на верх