Python 关于Odoo的变化不起作用

Python 关于Odoo的变化不起作用,python,openerp,onchange,odoo,odoo-8,Python,Openerp,Onchange,Odoo,Odoo 8,我有一个包含很多元素的表单。其中一个是一个下拉列表,名称=evaluation\u id。我试图在evaluation\u id上创建一个Odooon\u change()事件,其中表单中的另一个元素-deadline将用特定值更新 在我的XML中,我有: <field name="evaluation_id" string="Appraisal" on_change="onchange_evaluation_id(evaluation_id)"/> 下面是脚本的原始代码和代码段

我有一个包含很多元素的表单。其中一个是一个下拉列表,名称=
evaluation\u id
。我试图在
evaluation\u id
上创建一个Odoo
on\u change()
事件,其中表单中的另一个元素-
deadline
将用特定值更新

在我的XML中,我有:

<field name="evaluation_id" string="Appraisal" on_change="onchange_evaluation_id(evaluation_id)"/>
下面是脚本的原始代码和代码段

我做错了什么?当我检查网络日志时,我看到更改上的函数甚至没有加载


我能做些什么来解决这个问题?任何帮助都很好!谢谢。

此方法可以写入py文件。如果仅在Odoo-v8中工作,则此功能将起作用

@api.onchange('evaluation_id')
def onchange_evalution_id(self)
    self.deadline='2015'

当触发函数时,在odoo中有两个选项可供使用

@api.onchange

如果表单中更改了装饰器中指定的任何字段,则此装饰器将触发对装饰函数的调用。此处范围仅限于同一屏幕/型号

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

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

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

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

@api.depends('field')
def function_name(self)
    self.deadline = value
有关更多信息,请参阅描述OdooV8所有API的链接

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