IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

un modele avec deux champs clé étrangere pour recuperer deux champs d'un autre modele


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 96
    Par défaut un modele avec deux champs clé étrangere pour recuperer deux champs d'un autre modele
    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

  2. #2
    Membre actif Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 96
    Par défaut
    En refranchissant à une solution je me suis aperçu que je n'avais pas besoin dans le modèle "carburant" du champ typecarburant. et je n'ai pas besoin de le relier par une foreign key au champ typeCarburant du modèle"ModelVoiture"..bref, j'avais une mauvaise implantation des modèles.

    je mets résolu même si ça ne répond pas à la question d'origine. Si un Galactus de django passe par là et y répond ça sera un bonus.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/09/2016, 01h47
  2. [SP-Online] Formulaire avec un champ d'une autre liste
    Par Neiss dans le forum SharePoint
    Réponses: 1
    Dernier message: 19/08/2016, 10h49
  3. [AC-2010] Alimneter une table avec les champs d'une autre table selon critères
    Par tibao276 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2014, 21h26
  4. Réponses: 13
    Dernier message: 22/10/2008, 09h19
  5. Probleme avec deux div dans une autre
    Par orphen dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 05/11/2007, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo