Bonjour ,
j'ai un model "ModelVoiture" avec une clé étrangère qui va chercher le champ "typeCarburant" du modèle Carburant.
Ça fonctionne, je voudrais ajouter dans "ModelVoiture" un champ avec clé étrangère qui irait taper dans le champs "prixCarburant" du modèle "Carburant" et là django me sort ce message d'erreur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
coutcarbur.ModelVoiture.prixCarburant: (fields.E304) Reverse accessor 'Carburant.modelvoiture_set' for 'coutcarbur.ModelVoiture.prixCarburant' clashes with reverse accessor for 'coutcarbur.ModelVoiture.typeCarburant'.
        HINT: Add or change a related_name argument to the definition for 'coutcarbur.ModelVoiture.prixCarburant' or 'coutcarbur.ModelVoiture.typeCarburant'.
coutcarbur.ModelVoiture.typeCarburant: (fields.E304) Reverse accessor 'Carburant.modelvoiture_set' for 'coutcarbur.ModelVoiture.typeCarburant' clashes with reverse accessor for 'coutcarbur.ModelVoiture.prixCarburant'.
        HINT: Add or change a related_name argument to the definition for 'coutcarbur.ModelVoiture.typeCarburant' or 'coutcarbur.ModelVoiture.prixCarburant'.
j'ai vue qu'il y'avait l'option de mettre un related_name dans les champs, j'ai donc fait ceci dans "ModelVoiture"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
prixCarburant = models.ForeignKey(Carburant, on_delete=models.CASCADE,related_name='prixCarburant_carburant')
    typeCarburant = models.ForeignKey(Carburant, on_delete=models.CASCADE,related_name='typeCarburant_carburant')

l'erreur n'existe plus, mais à l'affichage dans l'admin et dans le template "prixCarburant" me sort les memes valeurs de "typeCarburant"

j'ai sûrement faux dans le design des modèles ? le type de relation entre les modèles (manytomany ?)

voila le code du 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
23
24
25
26
class MarqueVoiture(models.Model):
    name = models.CharField(max_length=50)
 
    def __str__(self):
        return self.name
 
 
class Carburant(models.Model):
    name = models.CharField(max_length=50)
    prixCarburant = models.DecimalField(max_digits=6, decimal_places=2)
    typeCarburant = models.CharField(max_length=50)
 
    def __str__(self):
        return self.name
 
 
class ModelVoiture(models.Model):
    name = models.CharField(max_length=50)
    consolitre = models.DecimalField(
        max_digits=6, decimal_places=2)
    prixCarburant = models.ForeignKey(Carburant, on_delete=models.CASCADE,related_name='prixCarburant_carburant')
    typeCarburant = models.ForeignKey(Carburant, on_delete=models.CASCADE,related_name='typeCarburant_carburant')    
    marque = models.ForeignKey(MarqueVoiture, on_delete=models.CASCADE)
 
    def __str__(self):
        return self.name






merci pour toutes infos