1

how can I do a new record from Many2many and One2many

First class

class A(models.Model):
    _name='risques.risque'
    _rec_name='nom_risque'

    nom_risque = fields.Char(required=True, string="Nom du Risque")
    rubrique_ids = fields.Many2many('risques.rubrique', string="Rubrique", required=True)

Second class

class B(models.Model):
    _name='risques.rubrique'
    _rec_name='nom_rubrique'

    critere_ids = fields.One2many('risques.critere','rubrique_id',required=True, string="Critére d'évaluation")
    nom_rubrique = fields.Char(string="Rubrique")

Third class

class C(models.Model):
    _name='risques.critere'
    _rec_name='nom_critere'

    nom_critere = fields.Char(string="Nom du Critere")
    note = fields.Float(string="Note", readonly=True, compute='_onchange_mesure')
    rubrique_id = fields.Many2one('risque.rubrique',
                                string='Rubrique')

how can I return the rubrique_ids and their critere_ids in a new target record ?

Guesmi
  • 155
  • 1
  • 9

1 Answers1

1

Try Below code:

class A(models.Model):
   _name='risques.risque'
   _rec_name='nom_risque'

   def cl_method(self):
      self.create({'nom_risque': 'ABC',
                   'rubrique_ids' [(0, 0, { 'nom_rubrique': 'ABCD',
                                            'critere_ids': 
                                                          [(0, 0,{
                                                          'nom_critere': 'ABCDE',
                                                          'note': 1.0, 
                                                          'rubrique_id': 1
                                                          })],
                                 })]
                  })

   def cl_exitings_ids_method(self):
      self.create({'nom_risque': 'ABC',
                   'rubrique_ids' [(0, 0, { 'nom_rubrique': 'ABCD',
                                            'critere_ids': 
                                                          [(6, 0,[critere_ids])],
                                 })]
                  })

You can also get idea about create One2many and Many2many record from :Filling Many2many field (odoo 8)

Hope this help you.

  • @ Nikunj Antala I want to return the rubrique_ids and critere ids exist in this record – Guesmi Nov 28 '17 at 07:57
  • @Guesmi Use (6, 0, [IDs]) for add existing records id in one2many records. Check the update answer – Synodica Solutions Pvt. Ltd. Nov 29 '17 at 04:46
  • thanks for your reply but how can I put them in other object for example I want to return them in class etude.etude (generate form dynamically) self.env[etude.etude].create({}) – Guesmi Nov 29 '17 at 08:08
  • @Guesmi not getting you what is your need. write in detail here. – Synodica Solutions Pvt. Ltd. Nov 29 '17 at 08:42
  • I need to generate rubrique_ids and there critere_ids in new class FOR example when I click in a button it generate a record contains the rubrique and their critere I put more detail here https://stackoverflow.com/questions/47535169/return-form-dynamically – Guesmi Nov 29 '17 at 08:51