如何在openerp中设置字段只读,并通过on_change方法更改值
问题描述:
对于sequence
字段,我设置了只读选项1
,当我尝试更改on_change
方法中的值时,我点击保存按钮后该值被删除。
这是我的代码:如何在openerp中设置字段只读,并通过on_change方法更改值
<record id="view_attachment_form_inherit" model="ir.ui.view">
<field name="name">ir.attachment.inherit</field>
<field name="model">ir.attachment</field>
<field name="inherit_id" ref="base.view_attachment_form"/>
<field name="arch" type="xml">
<field name='name' position="after">
<field name='sequence' readonly='1'/>
<group>
<field name='number' on_change='number_change(number)'/>
</group>
</field>
</field>
</record>
Python代码:
def number_change(self, cr, uid, ids, number, context=None):
# do test for this number
return {'value': {'sequence': 'new sequence'} }
如何更改保存呢?
答
只读字段不会被Web客户端发送回后端(因为它们只读,它们不会改变)。
解决方法是隐藏'sequence'字段,并删除readonly =“1”属性。
如果您仍想查看序列的值,请在您的模型中添加一个虚拟字段“sequence_ro”,您可以使用readonly ='1'显示该字段,然后在onchange方法中进行更新。
非常感谢。 – Zety