如何在不刷新页面的情况下更新字段的值 Odoo
How to update a value from a field without refreshing the page Odoo
我正在模块的设置页面上创建一个新扇区,其中有一个值和一个更新图标,目的是在我单击该图标时更新字段值。
但是当我调用函数执行函数时,页面被重新加载,我从来没有得到值,但是这个值是用记录器打印在终端上的,有人有什么建议吗?
我的XML代码:
<button type="object" name="refresh_credits" class="btn-link" icon="fa-refresh"/>
<span class="btn-link">Credits</span>
<field name="new_credits"/>
我的 python 代码在 class:
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
new_credits = fields.Integer()
def refresh_credits(self):
data_details_credits = self.env['show.credits'].content_credits_info()
_logger.info(self.env['show.credits'].content_credits_info()[4])
self.new_credits = data_details_credits[4]
您必须覆盖 set_values 和 get_values 方法才能更新设置中的值。我们无法直接更新常规设置中的值。
示例如下:-
def set_values(self):
super(ResConfigSettings, self).set_values()
self.env['ir.config_parameter'].sudo().set_param('MODULE_NAME.new_credits',
self.new_credits)
@api.model
def get_values(self):
res = super(ResConfigSettings, self).get_values()
config = self.env['ir.config_parameter'].sudo()
config_key = config.get_param('MODULE_NAME.new_credits')
if config_zoom_key:
res.update(
field_name=config_key
)
return res
为了更好地理解,请观看此视频:-
Add fields general settings
我希望这是您问题的答案,并有助于更新值。
我正在模块的设置页面上创建一个新扇区,其中有一个值和一个更新图标,目的是在我单击该图标时更新字段值。
但是当我调用函数执行函数时,页面被重新加载,我从来没有得到值,但是这个值是用记录器打印在终端上的,有人有什么建议吗?
我的XML代码:
<button type="object" name="refresh_credits" class="btn-link" icon="fa-refresh"/>
<span class="btn-link">Credits</span>
<field name="new_credits"/>
我的 python 代码在 class:
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
new_credits = fields.Integer()
def refresh_credits(self):
data_details_credits = self.env['show.credits'].content_credits_info()
_logger.info(self.env['show.credits'].content_credits_info()[4])
self.new_credits = data_details_credits[4]
您必须覆盖 set_values 和 get_values 方法才能更新设置中的值。我们无法直接更新常规设置中的值。
示例如下:-
def set_values(self):
super(ResConfigSettings, self).set_values()
self.env['ir.config_parameter'].sudo().set_param('MODULE_NAME.new_credits',
self.new_credits)
@api.model
def get_values(self):
res = super(ResConfigSettings, self).get_values()
config = self.env['ir.config_parameter'].sudo()
config_key = config.get_param('MODULE_NAME.new_credits')
if config_zoom_key:
res.update(
field_name=config_key
)
return res
为了更好地理解,请观看此视频:- Add fields general settings
我希望这是您问题的答案,并有助于更新值。