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

Odoo (ex-OpenERP) Discussion :

Récupérer les valeurs de champ dans un calcul de champ de relation [V10]


Sujet :

Odoo (ex-OpenERP)

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 95
    Points : 79
    Points
    79
    Par défaut Récupérer les valeurs de champ dans un calcul de champ de relation
    Bonjour,
    Je voudrais récupérer toutes les valeurs des enregistrements d'un modèle dans un champ Many2one. Je ne sais pas si c'est possible avec un calcul ?

    Ma classe ou je veux récupérer la valeur :

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class ResPartner_school (models.Model):
     
        _name = 'ecole.partner.school'
        _order = 'id desc'
     
        school_name = fields.Many2one (comodel_name = "ecole.establishment.webservice",
                                  string = "Etablissement Scolaire",
                                   par défaut = 1)
        school_level = fields.Many2one (comodel_name = "ecole.establishment.webservice",
                                   string = "Niveau Scolaire",
                                   compute = "_ get_level")

    Mon autre classe:

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class SchoolEstablishmentWebServices (models.Model):
     
        _name = 'ecole.establishment.webservice'
        _rec_name = "nom_etablissement"
     
        nom_établissement = champs.Many2one (nom_du_commande = "horanet.school.establishment", chaîne = "Etablissement Scolaire")
        id_establishment = fields.Char (string = 'idEtablissement')
        grade_name = fields.Many2one (comodel_name = "horanet.school.grade", string = "Niveau Scolaire")
        id_class = fields.Char (string = 'idClasse')


    Ma fonction dans ma classe "ResPartner_school":

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        @ api.multi
        def _get_level (self):
            school_level = self.school_name.grade_name
     
            return school_name


    Comment récupérer toutes les valeurs du champ grade_name de la classe SchoolEstablishmentWebServices?

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 168
    Points : 254
    Points
    254
    Par défaut
    Citation Envoyé par KevinH Voir le message
    Bonjour,
    Je voudrais récupérer toutes les valeurs des enregistrements d'un modèle dans un champ Many2one. Je ne sais pas si c'est possible avec un calcul ? [...]
    Comment récupérer toutes les valeurs du champ grade_name de la classe SchoolEstablishmentWebServices?
    Merci
    Vous voulez tout récupérer temporaire pour y faire un calcul ?
    Si oui, et bien self.env['horanet.school.grade'].search([]) et vous aurez tous les enregistrements. Si vous voulez les noms seulement : self.env['horanet.school.grade'].search([]).mapped('name') si votre modèle contient un champ name relevant du nom et vous aurez toutes les valeurs possibles.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 95
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Je voulais dire : Je ne sais pas si c'est possible avec une fonction ? [...]

    1) Est ce qu'on peut faire un compute avec un champs de relation Many2One ? Ou cette possibilité est réservé aux autres champs ?
    2) Si je comprend bien .mapped(nomduchamp) va récupérer toutes les valeurs de nomduchamp ?
    3) J'ai vraiment encore un peu de mal avec ses différentes fonctions et j'ai vraiment l'impression de toutes les mélanger ...

    Exemple :
    self.env['horanet.school.grade'] -> Renvoie bien l'id ?
    self.env['horanet.school.grade'].search([]) -> quelle différence avec self.env['horanet.school.grade'].browse() -> ?
    self.env['horanet.school.grade'].search([]).mapped('grade_name ') -> Récupère toutes les valeurs de la colonne grade_name disponible ?
    self.env['horanet.school.grade'].search([]).grade_name -> ça n'existe pas ?

    Merci pour ta réponse

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 168
    Points : 254
    Points
    254
    Par défaut
    Citation Envoyé par KevinH Voir le message
    1) Est ce qu'on peut faire un compute avec un champs de relation Many2One ? Ou cette possibilité est réservé aux autres champs ?
    Oui, avec n'importe quel type de champ à priori.

    2) Si je comprend bien .mapped(nomduchamp) va récupérer toutes les valeurs de nomduchamp ?
    Oui, et les dédoubler.

    3) J'ai vraiment encore un peu de mal avec ses différentes fonctions et j'ai vraiment l'impression de toutes les mélanger ...

    Exemple :
    self.env['horanet.school.grade'] -> Renvoie bien l'id ?
    Non cela renvoie l'objet / le modèle horanet.shool.grade, vide.

    self.env['horanet.school.grade'].search([]) -> quelle différence avec self.env['horanet.school.grade'].browse() -> ?
    Le premier renvoie tous les enregistrements du modèle.
    La second recherche un modèle particulier (browse devrait avoir pour argument [25] par exemple, pour récupérer le seul ID 25).

    self.env['horanet.school.grade'].search([]).mapped('grade_name ') -> Récupère toutes les valeurs de la colonne grade_name disponible ?
    Renvoie une liste de toutes les valeurs de grade_name pour tous les enregistrements horanet.shcool.grade.

    self.env['horanet.school.grade'].search([]).grade_name -> ça n'existe pas ?
    Non car la recherche renvoie de multiples enregistrements et pas forcément un seul, d'où l'usage de mapped. Mapped est équivalent à la liste de compréhension, classique en Python, suivante :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    grade_names = [grade.grade_name for grade in self.env['horanet.school.grade'].search([])]

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 95
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup, ça m'a éclaircie au niveau des différentes syntaxe

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

Discussions similaires

  1. [V10] Récupérer les valeurs du même enregistrement à partir d'un champ
    Par KevinH dans le forum Odoo (ex-OpenERP)
    Réponses: 2
    Dernier message: 21/08/2018, 13h08
  2. Récupérer les valeurs d'un dans un site
    Par keviin55 dans le forum Débuter
    Réponses: 11
    Dernier message: 09/03/2011, 18h30
  3. Réponses: 4
    Dernier message: 24/06/2010, 10h49
  4. Récupérer les valeurs de clés dans un GridView
    Par insane_80 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2010, 13h06
  5. Récupérer les valeurs du formulaire dans execute()
    Par handsome01 dans le forum Struts 1
    Réponses: 10
    Dernier message: 28/03/2009, 03h19

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