我可以扩展销售订单视图并添加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>
结果:
现在我有一个列表[(“solde1”,1000),(“solde2”,2000)...]。由于该列表是动态的,我不知道要生成的字段数。
如何在表单中显示该列表,以便高于HT价格
solde1: 1000
solde2: 2000
....
Montant HT: value
答案 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。