显示销售订单表单中的值列表

时间:2016-09-16 17:52:55

标签: python-3.x odoo-8 openerp-8

我可以扩展销售订单视图并添加2个静态字段。我的代码是这样的:

class MysaleOrder(models.Model):
_inherit = 'sale.order'

rule_name=fields.Char('Règle')
rule_total = fields.Float('Montant de règle')
rule_exist=fields.Boolean(default=False)

对于观点:

<record id="remise1_view_order_form" model="ir.ui.view">
        <field name="name">sale.order.remse1.form</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form"/>
        <field name="arch" type="xml">
            <field name="amount_untaxed" position="before">
                <field name='rule_exist' invisible="1" />
                <field name="rule_name" nolabel="1" attrs="{'invisible':[('rule_exist', '!=', True)]}" readonly="1" />
               <field name="rule_total"  nolabel="1" widget='monetary' attrs="{'invisible':[('rule_exist', '!=', True)]}" readonly="1" options="{'currency_field': 'currency_id'}"></field>

            </field>

        </field>
    </record>

结果:

enter image description here

现在我有一个列表[(“solde1”,1000),(“solde2”,2000)...]。由于该列表是动态的,我不知道要生成的字段数。

如何在表单中显示该列表,以便高于HT价格

solde1: 1000
solde2: 2000
....
Montant HT: value

2 个答案:

答案 0 :(得分:2)

表单视图实际上不允许这种性质的动态元素。如果您确定最多可以使用x个项目,则可以在每个元素(field1,field2,field2)上使用DatatypeConstants.FIELD_UNDEFINED,这样您只能在适当的条件下显示field-n,但是为真正动态的n元素设置的唯一元素是one2many或many2many字段。

Qweb具有foreach模板功能,但在普通表单视图中不可用。

答案 1 :(得分:0)

AFAIK实现动态生成视图的唯一方法是覆盖&#34; fields_view_get&#34;方法并动态操作xml。