تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2 الردود
7139 أدوات العرض

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
نوفمبر 23
17522
3
نوفمبر 24
25168
1
أبريل 23
6212
2
ديسمبر 22
6961
1
نوفمبر 22
4114