更改OpenERP/Python中的其他字段时更改字段值

更改OpenERP/Python中的其他字段时更改字段值,python,xml,openerp-7,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'), 默认情况下,字段_5将始终为“不完整”: _defaults

我有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'),
默认情况下,字段_5将始终为“不完整”:

_defaults = { 
       'field_5': 'Incomplete',
    }
我的查询是,当所有四个字段都有值时,字段_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方法应该在字段_5 xml定义中:

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


这是因为字段_5值依赖于其他四个字段,而不是字段_1

谢谢,它对我有用。但是获取客户端错误:TypeError:无法读取null的属性“value”。这是什么意思?