如何在表单中多次使用同一个字段?
How to use same field more than once in a form?
对于需要多次使用同一字段的模块,视图 xml 会是什么样子?
例如。在我的场景中,我继承了视图并希望在新页面中显示一些字段,正如您在代码中看到的那样。 move_lines 已在父视图中使用,因此我无法获得所需的输出。
<xpath expr="/form/sheet/notebook/page[3]" position="after">
<page string="Tracking Info">
<field name="move_lines">
<tree string="Stock Moves" editable="bottom" create="false" delete="false">
<field name="product_id" readonly="True" required="1"/>
<field name="tracking_no"/>
</tree>
</field>
</page>
</xpath>
有更好的方法吗?
实际上,普通的(非定制的)Odoo 是不可能的,而且我不知道有什么定制可以满足这个要求。
<record model="ir.ui.view" id="view_picking_form_with_double_move_lines">
<field name="name">stark product</field>
<field name="model">stock.picking</field>
<field name="mode">extension</field>
<field name="priority" eval="50"/>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="/form/sheet/notebook/page[3]" position="after">
<page string="Tracking Info">
<field name="move_lines" widget="one2many"/>
</page>
</xpath>
</field>
我做了一些搜索,唯一的方法是创建相关字段。
class stock_picking(models.Model):
_inherit = 'stock.picking'
move_lines_d = fields.One2many('stock.move', related='move_lines')
并在 xml
中使用该字段
<xpath expr="/form/sheet/notebook/page[3]" position="after">
<page string="Tracking Info">
<field name="move_lines_d">
<tree string="Stock Moves" editable="bottom" create="false" delete="false">
<field name="state" invisible="1" readonly="0"/>
<field name="product_id" readonly="True" required="1"/>
<field name="moveline_partner" readonly="True"/>
<field name="moveline_partner_address" readonly="True"/>
<field name="tracking_no"/>
<!--<field name="product_uom_qty" string="Initial Demand" readonly="True"/>-->
<!--<field name="reserved_availability" string="Reserved" readonly="True"/>-->
<field name="quantity_done" string="Done" readonly="True"/>
<!--<field name="product_uom" readonly="True" string="Unit of Measure" groups="product.group_uom"/>-->
</tree>
</field>
</page>
</xpath>
对于需要多次使用同一字段的模块,视图 xml 会是什么样子?
例如。在我的场景中,我继承了视图并希望在新页面中显示一些字段,正如您在代码中看到的那样。 move_lines 已在父视图中使用,因此我无法获得所需的输出。
<xpath expr="/form/sheet/notebook/page[3]" position="after">
<page string="Tracking Info">
<field name="move_lines">
<tree string="Stock Moves" editable="bottom" create="false" delete="false">
<field name="product_id" readonly="True" required="1"/>
<field name="tracking_no"/>
</tree>
</field>
</page>
</xpath>
有更好的方法吗?
实际上,普通的(非定制的)Odoo 是不可能的,而且我不知道有什么定制可以满足这个要求。
<record model="ir.ui.view" id="view_picking_form_with_double_move_lines">
<field name="name">stark product</field>
<field name="model">stock.picking</field>
<field name="mode">extension</field>
<field name="priority" eval="50"/>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="/form/sheet/notebook/page[3]" position="after">
<page string="Tracking Info">
<field name="move_lines" widget="one2many"/>
</page>
</xpath>
</field>
我做了一些搜索,唯一的方法是创建相关字段。
class stock_picking(models.Model):
_inherit = 'stock.picking'
move_lines_d = fields.One2many('stock.move', related='move_lines')
并在 xml
中使用该字段<xpath expr="/form/sheet/notebook/page[3]" position="after">
<page string="Tracking Info">
<field name="move_lines_d">
<tree string="Stock Moves" editable="bottom" create="false" delete="false">
<field name="state" invisible="1" readonly="0"/>
<field name="product_id" readonly="True" required="1"/>
<field name="moveline_partner" readonly="True"/>
<field name="moveline_partner_address" readonly="True"/>
<field name="tracking_no"/>
<!--<field name="product_uom_qty" string="Initial Demand" readonly="True"/>-->
<!--<field name="reserved_availability" string="Reserved" readonly="True"/>-->
<field name="quantity_done" string="Done" readonly="True"/>
<!--<field name="product_uom" readonly="True" string="Unit of Measure" groups="product.group_uom"/>-->
</tree>
</field>
</page>
</xpath>