如何在odoo中设置xml代码的默认字段值?

时间:2017-05-29 08:21:59

标签: openerp odoo-8

在销售订单模块中,我创建了一个新的自定义表单视图,在sale.py文件中我创建了一个新字段' is_sample'

'is_sample': fields.boolean("Specimen Order", store=False),

我想从xml代码设置其默认值,以便它不会在默认表单视图中受到影响。我试过四种方式,

1)<field name="is_sample" eval="True"/>
2)<field name="is_sample" domain="[('is_sample','=',True)]"/>
3)<record id="action_specimen_orders" model="ir.actions.act_window">
        <field name="type">ir.actions.act_window</field>
        <field name="context">{'is_sample': 'True'}</field>
       ...
4)<record id="action_specimen_orders" model="ir.actions.act_window">
        <field name="type">ir.actions.act_window</field>
        <field name="domain">[('is_sample','=','True')]</field>
       ...

2 个答案:

答案 0 :(得分:5)

有一种从xml设置默认值的最简单方法,通常可以为模型的所有字段设置默认值。为此,您需要添加字典键/值对以设置任何字段的默认值。

一般语法

default_field_name : default_value 

要设置默认值,您需要通过窗口操作传递上下文,您需要在上下文中设置一个键/值对,如语法中所示。 default_是需要使用字段名称作为键设置的前缀。

请尝试以下操作:

<record id="action_specimen_orders" model="ir.actions.act_window">
        <field name="type">ir.actions.act_window</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
        <field name="context">{'default_is_sample': True}</field>
</record>

答案 1 :(得分:0)

如果您希望您的产品必须在POS中使用,您必须这样做:

<record id="module_name.action_name" model="ir.actions.act_window">            
    <field name="name">My Menu</field>
    <field name="res_model">object.name</field>
    <field name="context">{'default_available_in_pos':1}
    </field>
</record>