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
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
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'.
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
Partager