Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
2 Odpovědi
7143 Zobrazení

Hi

I am trying to save a many2one field value in settings. But it is not saving, after refreshing the page the field value is set to false.

This is my code:

partner = fields.Many2one('res.partner')

@api.model
def get_values(self):
  res = super(Partner, self).get_values()
  res['partner'] = self.env['ir.config_parameter'].sudo().get_param(
      'projectxyz.partner.id')
  return res

@api.model
def set_values(self):
  res = super(Partner, self).set_values()
  self.env['ir.config_parameter'].sudo().set_param('projectxyz.partner',
                                                    self.partner.id)
  return res

Avatar
Zrušit
Nejlepší odpověď

Hi,

Try the following code


@api.model
def get_values(self):
  res = super(ResConfigSettings, self).get_values()

  params = self.env['ir.config_parameter'].sudo()
  partner = params.get_param('partner', default=False)
  res.update(
      partner=int(partner),
  )
  return res

@api.multi
def set_values(self):
  super(ResConfigSettings, self).set_values()
  self.env['ir.config_parameter'].sudo().set_param("partner", self.partner.id)

Regards

Avatar
Zrušit
Autor

Thanks this works for me

Nejlepší odpověď

1) Make sure you inherit model with  'res.config.settings' if not you have to override create/write instead of get_values/set_values

2) If you are using V12 it will handle by ORM with `config_parameter` option
     _inherit = 'res.config.settings'
   partner_id = fields.Many2one('res.partner', string='Partner', config_parameter='config.partner')


Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
3
lis 23
17529
3
lis 24
25184
1
dub 23
6223
2
pro 22
6969
1
lis 22
4120