嗨,是否有可能基于'onchange'更新全局变量并将其分配给选择字段?
variable = []
class a:
@api.onchange('some_other_filed')
def function1(self):
global variable
variable = #something based on some other filed
test = fields.Selection(variable)
此变更将反映在选择字段中。我得到的只是选择字段中的空列表。
答案 0 :(得分:1)
不建议使用全局变量。如果要使其在Odoo中的任何位置始终可用,则可以在ir.config_parameter
表上使用持久字段。您可以在设置>技术>参数>系统参数上查看存储的配置参数。
您可以像这样设置参数的值:
self.env['ir.config_parameter'].set_param('use_journal_setting', True)
并获得其他一些类似的值:
location = self.env['ir.config_parameter'].get_param(
'ir_attachment.location'
)
您还可以直接使用某些值更新选择字段,或者可以使用参数来更新它。
@api.onchange('field_name')
def onchange_field_name(self):
self.test = self.env['ir.config_parameter'].get_param('parameter_name')
注意:如果您需要许多这些全局变量,请考虑创建自己的参数表。