如何使用全局变量通过Odoo 10更新选择字段?

时间:2018-07-26 09:43:49

标签: python python-2.7 global-variables odoo odoo-10

嗨,是否有可能基于'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)

此变更将反映在选择字段中。我得到的只是选择字段中的空列表。

1 个答案:

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

注意:如果您需要许多这些全局变量,请考虑创建自己的参数表。