Bonsoir, j'ai du mal à comprendre quel est le contenu de la table de jointure intermédiaire que crée Django lorsqu'on utilise ManyToManyField.

D'après ce que j'ai compris, cette table enregistrera des clés étrangères.

Voici le contenu de mon fichier .\crepes_bretonnes\blog\models.py :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Produit(models.Model):
    nom = models.CharField(max_length=30)
 
    def __str__(self):
        return self.nom
 
class Vendeur(models.Model):
    nom = models.CharField(max_length=30)
    produits = models.ManyToManyField(Produit, through='Offre', 
                                      related_name='+')
    produits_sans_prix = models.ManyToManyField(Produit, related_name="vendeurs")
 
    def __str__(self):
        return self.nom
 
class Offre(models.Model):
    prix = models.IntegerField()
    produit = models.ForeignKey(Produit, on_delete=models.CASCADE)
    vendeur = models.ForeignKey(Vendeur, on_delete=models.CASCADE)
 
    def __str__(self):
        return "{0} vendu par {1}".format(self.produit, self.vendeur)
Je vais sur sqliteonline.com pour visualiser ma base de données et effectivement j'ai une table "blog_vendeur_produits_sans_prix" qui apparaît :

Nom : Table.png
Affichages : 264
Taille : 4,8 Ko

Savez-vous comment fonctionne la création de cette table ?

Merci pour votre aide.