我有以下QWeb元素:
<record id="extended_res_partner" model="ir.ui.view">
<field name="name">Extended View</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Foo" name="foo" attrs="{'invisible': [('is_customer', '=', False),]}">
<field name="is_customer" invisible="1"/>
<span>Foo2</span>
</page>
</notebook>
</field>
</record>
但它不起作用。我明白了:
Field `is_customer` does not exist
如果我删除attrs=...
,则可以正常使用。
答案 0 :(得分:1)
即使您没有提供错误消息,但只有在res.partner
的表单视图中才会起作用,但我假设该表单是针对与{{具有many2one关系的另一个模型的表单1}}在这种情况下,您需要在模型中创建相关字段。
res.partner
然后,您需要将此字段添加到表单视图,因为attrs是客户端功能,它需要表单中的值才能工作。
partner_id = ......
is_customer = fields.Boolean(related='partner_id.is_customer', readonly=True)
注意:如果表单视图是<page string="foo" name="foo" attrs="{'invisible': [('is_customer', '=', False),]}">
<field name="is_customer" invisible="1"/>
<span>Foo2</span>
</page>
,只需将字段添加到表单视图,因为正如我所说的客户端操作,它不会调用服务器来知道您需要的字段的值是什么通过它。