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 :

Modifier la valeur d'un attribut à partir d'une autre classe [V8]


Sujet :

Odoo (ex-OpenERP)

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 140
    Points : 84
    Points
    84
    Par défaut Modifier la valeur d'un attribut à partir d'une autre classe
    Bonjour,

    j'ai 2 classes A et B, je veux modifier l'attribut "nombre_balle" de la classe A a partir de la classe B :
    classe A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class A(models.Model):
        _name = 'test.a'
    
        name = fields.Char(string="Nom",required=True)
        nombre_balle = fields.Integer(string="Nombre de balle")
    classe B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class B(models.Model):
        _name = 'test.b'
    
        name = fields.Char(string="Nom",required=True)
        a_id = fields.Many2one('test.a',ondelete='set null',string="Objet classe A",required=True)
    j'ai ajouté un attribut pour récupérer l'attribut nombre_balle de la classe A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombre_balle = fields.Integer(related='a_id ')
    Comment puis-je modifier la valeur de nombre_balle a partir de la classe B ?

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 140
    Points : 84
    Points
    84
    Par défaut
    est-ce que je peux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    self.write(cr, uid, [42,43],
              { 'name': 'spam & eggs',
                'partner_id': 24,
              })
    pour modifier d'autre objet ?

  3. #3
    Membre habitué

    Homme Profil pro
    Developpeur Web & Odoo
    Inscrit en
    Novembre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Developpeur Web & Odoo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2010
    Messages : 87
    Points : 164
    Points
    164
    Billets dans le blog
    3
    Par défaut
    Slt,

    Non, tu devrais plutôt faire appel à l'autre objet depuis la classe où tu te trouve et le modifier ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A = self.pool.get('test.a').browse(cr,uid,[42], context)
    A.write({
    
    });
    Cordialement,
    N'oubliez pas de marquer vos discussions
    Si une réponse vous a été utile pensez à voter Pour

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 140
    Points : 84
    Points
    84
    Par défaut
    Merci harryboy

    j'ai réglé le problème avec la fonction "related" que odoo propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombre_balle = fields.Integer(related='a_id.nombre_balle')

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/09/2014, 05h58
  2. Réponses: 3
    Dernier message: 08/08/2008, 13h05
  3. modifier une variable d'une classe à partir d'une autre classe
    Par Rniamo dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 16/03/2008, 20h40
  4. Modifier la source d'un Iframe à partir d'une autre fenêtre
    Par Dan_Rich dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/10/2005, 08h11

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