python - 在其他字段发生变化时更改字段值 OpenERP/Python

标签 python xml openerp-7

我有大约 5 个字段

field_1: fields.char("Field")
field_2: fields.char("Field")
field_3: fields.char("Field")
field_4: fields.char("Field")
field_5: fields.selection((('Incomplete','Incomplete'),('Completed','Completed')),'Field'),

默认情况下,field_5 将始终为“不完整”:

_defaults = { 
       'field_5': 'Incomplete',
    }

我的查询是当所有四个字段都有值时,field_5 应自动更改为“已完成” 如何做到这一点?

我写了一个 on_change 函数:

def on_change_module_code(self, cr, uid, ids, field_1,field_2,field_3,field_4):
    if field_1 :
        return {'value': {'field_5': 'Completed'}}
    if field_2 :
        return {'value': {'field_5': 'Completed'}}
    if field_3 :
        return {'value': {'field_5': 'Completed'}}
    if field_4 :
        return {'value': {'field_5': 'Completed'}}

在 XML 中:

<field name="field_1" on_change="on_change_module_code(field_1,field_2,field_3,field_4)"/>

当我输入第一个字段时,数据将变为“已完成”。但当所有字段都有值时,它应该变成“已完成”。

如何做到这一点?

最佳答案

写作怎么样

if field_1 and field_2 and field_3 and field_4:
    return{'value': {'field_5' : 'Completed' }}
else:
    return{'value': {'field_5' : 'Incomplete' }}

我还认为 on_change 方法应该在 field_5 xml 定义中:

<field name="field_5" on_change="on_change_module_code(field_1,field_2,field_3,field_4)"/>

这是因为 field_5 值取决于其他四个字段,而不是 field_1

关于python - 在其他字段发生变化时更改字段值 OpenERP/Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33803055/

相关文章:

xml - 如何在经典 ASP 中使用地理编码 API v3

mysql - Dotnet Core Microsoft.EntityFrameworkCore.Tools.Dotnet 未安装

openerp-7 - 如何删除处于销售订单状态的销售订单?

python - 拆分和排序列表 Jinja/Pelican

python - Tensorflow:随着训练的进行,图中的节点数量不断增加

xml - 如何使用 XSLT 在日期中增加 1 天

python - 单击新模块安装时 OpenERP 服务器错误

php - 将 Magento 订单导入 Openerp

python - 具有附加字段的 SQLAlchemy 多对多辅助表

python - Django manage.py runserver 命令请求的资源在此服务器上找不到错误