跳至內容
選單
此問題已被標幟
2 回覆
7147 瀏覽次數

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

頭像
捨棄
最佳答案

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

頭像
捨棄
作者

Thanks this works for me

最佳答案

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')


頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
3
11月 23
17533
3
11月 24
25188
1
4月 23
6223
2
12月 22
6974
1
11月 22
4122