使用Odoo 10(从GitHub提交7413b26
,分支10.0
),安装我从Odoo 8移植的模块。
此模块通过从purchase.order.line
删除purchase.order
属性,强制点击editable
中的一行时显示tree
表单,但保存更改时形式Odoo提出:
错误:域中的未知字段状态[["州","在",["购买","批准", "完成""取消"]]]
purchase_order_error.xml:
<record id="purchase_order_line_tree" model="ir.ui.view">
<field name="name">purchase.order.form</field>
<field name="model">purchase.order</field>
<field name="priority" eval="33"/>
<field name="type">form</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook/page/field[@name='order_line']/tree" position="attributes">
<attribute name="editable"/>
</xpath>
</field>
</record>
__manifest__.py
是:
{'name': "purchase_order_error",'depends': ['base', 'product', 'purchase'],'data': ['purchase_order_error.xml',],'installable':True}
和__init__.py
只是通常的from . import purchase_order_error
。
以下是一些更多的观察结果:
state
可以包含以下选择值:[draft]
,[sent]
,[to approve]
,[purchase]
,[done]
,{{1 }}; [cancel]
和[draft]
未出现在错误中。有解决方法吗?
答案 0 :(得分:2)
你应该添加
<record id="purchase_order_line_tree" model="ir.ui.view">
<field name="name">purchase.order.form</field>
<field name="model">purchase.order</field>
<field name="priority" eval="33"/>
<field name="type">form</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook/page/field[@name='order_line']/tree" position="attributes">
<attribute name="editable">top</attribute>
</xpath>
</field>
</record>
在您的情况下,它会打开表单视图以允许您创建 记录,因为您没有给出可编辑属性的值。
因此,在采购订单行的表单视图中,可能没有定义字段&#34; state&#34;。根据规则,如果字段在attrs,domains中的任何地方使用,那么它必须在视图上定义,并不重要,你可以将它定义为不可见。
只需在采购订单行表单视图中添加此字段,或按照editable="top"
<field name="state" invisible="1" />
答案 1 :(得分:1)
问题是从表单视图中保存记录时 状态字段未定义。你不会得到这个错误 在树视图中,因为该字段在那里:
<page string="Products">
<field name="order_line" attrs="{'readonly': [('state', 'in', ('done', 'cancel'))]}">
<tree string="Purchase Order Lines" editable="bottom">
<field name="currency_id" invisible="1"/>
<field name="state" invisible="1"/>
.....
....
..
所以你需要将它添加到嵌入式表格中:
<record id="xxx_purchase_order_form_list_details" model="ir.ui.view">
<field name="name">xxx_purchase_order_form_list_details</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='order_line']/tree" position="attributes">
<attribute name="editable"/>
</xpath>
<xpath expr="//field[@name='order_line']//form//field[@name='product_id']" position="before">
<field name="state" invisible="1"/>
</xpath>
</field>
</record>