如何在表单中多次使用相同的字段?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在表单中多次使用相同的字段?相关的知识,希望对你有一定的参考价值。

对于需要多次使用同一字段的模块,视图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>

有没有更好的方法呢?

答案

我做了一些搜索,唯一的方法就是创建相关字段。

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>
另一答案

实际上用香草(不是定制的)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>

after before view

以上是关于如何在表单中多次使用相同的字段?的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何在 Django 表单中多次包含相同的字段?

Django表单在单个HTML中多次使用,避免重复的id

在后台堆栈中多次防止相同的片段

如何在redux形式中使用不同的名称id多次渲染相同的字段时验证字段

验证下拉项在具有相同 id 的下拉字段列表中不会出现多次

在rails中相同模型的新视图中附加表单部分