问题描述
我正在使用 odoo 14 并在“res.config.settings”中添加了 one2many 字段。但是这个字段值在保存这个 res.config.settings 表单时显示为 false。
以下是我的代码:-
import multiprocessing as mp
import numpy as np
from functools import partial
import time
def formating(a,b):
# Formating goes here
x = np.sort(b);
# digitize
l = np.digitize(a,x)
# output:
result = np.bincount(l,weights=a)
return result
# needed for Windows:
if __name__ == '__main__':
Numbers = np.array([3,4,5,7,8,10,20])
limit1 = np.array([0,2,12,15])
limit2 = np.array([0,12])
limit3 = np.array([0,15,22])
TRIALS = 100
# multiprocessing version 1 (using method map):
# since first argument to formating is always the same:
worker = partial(formating,Numbers)
with mp.Pool(3) as pool:
t = time.time()
for _ in range(TRIALS):
result1,result2,result3 = pool.map(worker,[limit1,limit2,limit3])
elapsed = time.time() - t
print(result1,result3,elapsed)
提前致谢。
解决方法
Odoo 模型 res.config.settings
不能有 One2many 字段或不应该有。此外,要在视图中显示值,您必须继承 get_param
方法并将您的字段添加到响应中。
from ast import literal_eval
class ProjectResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
hide_export_field = fields.Many2many('export.hide',string='Hide Field')
@api.model
def get_values(self):
res = super(ProjectResConfigSettings,self).get_values()
get_param = self.env['ir.config_parameter'].sudo().get_param
hide_export_field = get_param('hide_export_field','[]')
hide_export_field = [(6,literal_eval(hide_export_field))]
res.update(hide_export_field=hide_export_field)
return res
def set_values(self):
res = super(ProjectResConfigSettings,self).set_values()
set_param = self.env['ir.config_parameter'].sudo().set_param
set_param('hide_export_field',self.hide_export_field.ids)
return res
class ExportHideFields(models.Model):
_name = "export.hide"
res_id = fields.Integer(string="Resend wizard")
model_ids = fields.Many2one('ir.model',string='Model')
field_for_hide = fields.Many2many('ir.model.fields',string='Field For Hide')