从many2one创建new的默认类别

时间:2016-03-15 14:45:39

标签: openerp many-to-one odoo-9

我创建了一个many2one字段来选择表单中的产品。我过滤了可以选择域名的项目:

light_system = fields.Many2one(
    'product.product',
    string='Lighting System',
    ondelete='restrict',
    domain=[('categ_id.name', '=','Lighting System')]
)

如果我使用“创建新”直接从此下拉列表中创建新项目,则该类别未设置为“照明系统”,因此当我再次尝试使用该类别时,它将不会显示,从而冒险重复同一项目不同的用户...... 当我选择直接从这个字段创建一个新项目并使用'create new“”'或'create and edit“”'时,是否可以将类别设置为“Lighting System”?

我试过

<field name="light_system"
       placeholder="Lighting System"
       context="{'default_categ_id':'Lighting System'}"/>

<field name="light_system"
       placeholder="Lighting System"
       context="{'default_categ_id.name':'Lighting System'}"/>

在表单视图中,但都不起作用

1 个答案:

答案 0 :(得分:0)

您需要传递类别ID:

<field name="light_system"
   placeholder="Lighting System"
   context="{'default_categ_id':lighting_id}"/>

如果你把它作为字段填入表单,甚至隐藏

如果您在某个模块的data.xml中创建了类别,则可以使用ref:

<field name="light_system"
   placeholder="Lighting System"
   context="{'default_categ_id':ref('name_of_the_module.lighting_id')}"/>