gpt4 book ai didi

python - Odoo 中的 on_change 不工作

转载 作者:行者123 更新时间:2023-11-28 22:41:30 24 4
gpt4 key购买 nike

我有一个包含很多元素的表单。其中之一是 name=evaluation_id 的下拉列表。我正在尝试在 evaluation_id 上创建一个 Odoo on_change( ) 事件,表单中的另一个元素 - deadline 将更新为某个值.

在我的 XML 中我有:

<field name="evaluation_id" string="Appraisal" on_change="onchange_evaluation_id(evaluation_id)"/>

我在 Python 脚本中有这个

def onchange_evaluation_id(self, cr, uid, ids, evaluation_id, context=None):

return {'value': { 'deadline': 2015}}

这是 hr_evaluation_view.XML 的原始代码和 hr_evaluation.PY 的片段脚本。

我在这里做错了什么?当我检查网络日志时,我发现函数 on_change 甚至没有加载。

我该怎么做才能解决这个问题?你能帮忙的话,我会很高兴!谢谢。

最佳答案

odoo 中有两个选项可供使用,此时在字段内所做的某些更改将被触发。

@api.onchange

如果装饰器中指定的任何字段在表单中发生更改,则此装饰器将触发对装饰函数的调用。这里的范围仅限于相同的屏幕/模型。

您可以在@api.depends 和@api.onchange 中填写相似之处,但一些不同之处在于onchange 的范围仅限于同一屏幕/模型,而@api.depends 也适用于其他相关屏幕/模型。

@api.onchange('field')
def onchange_field(self)
self.deadline= value

@api.depends

这个装饰器专门用于odoo中的“fields.function”。对于“field.function”,您可以计算值并将其存储在一个字段中,其中计算可能取决于同一个表或其他表的某些其他字段,在这种情况下您可以使用 @api.depends 在某个表的字段上保持“监视”。

因此,如果装饰器中的任何字段“被 ORM 更改或在表单中更改”,这将触发对装饰函数的调用。

@api.depends('field')
def function_name(self)
self.deadline = value

欲了解更多信息,Here是描述 Odoo v8 所有 API 的链接。

关于python - Odoo 中的 on_change 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32570103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com