Openerp 从manyOne新建时的默认类别

Openerp 从manyOne新建时的默认类别,openerp,many-to-one,odoo-9,Openerp,Many To One,Odoo 9,我创建了一个manyOne字段来选择表单中的产品。我通过域筛选可能要选择的项目: light_system = fields.Many2one( 'product.product', string='Lighting System', ondelete='restrict', domain=[('categ_id.name', '=','Lighting System')] ) 如果我使用“新建”直接从此下拉列表创建一个新项目,则该类别不会设置为“照明系统”,因

我创建了一个manyOne字段来选择表单中的产品。我通过域筛选可能要选择的项目:

light_system = fields.Many2one(
    'product.product',
    string='Lighting System',
    ondelete='restrict',
    domain=[('categ_id.name', '=','Lighting System')]
)
如果我使用“新建”直接从此下拉列表创建一个新项目,则该类别不会设置为“照明系统”,因此当我再次尝试使用它时,它不会显示,这可能会导致不同用户重复使用同一项目。。。 当我选择使用“新建”或“创建并编辑”直接从此字段创建新项目时,是否可以在默认情况下将类别设置为“照明系统”

我试过了

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



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

您需要传递类别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')}"/>


这帮了大忙,谢谢。。。我开始用XML添加数据,以便能够引用
ref('module.record\u id)
模块更新时没有错误,但我在使用它时得到了一个“NameError:name'ref'未定义”。我得到了它,我试图在
{'default\u categ\u id':ref('name\u of\u the\u the \u module.lighting\u id')}
中使用它,它可以通过
来完成。好吧,我不知道,我可以按照上面的评论使用它来注册一个树状视图,但我仍然无法按照您的回答中的描述在标记中工作。它适用于类别的硬编码id,但我不知道如何传递在xml数据文件中创建的记录的外部id
context=“{'default_categ_id':ref('name_of the_the_module.lighting_id'))}
给我一个
未捕获的错误:name错误:name'ref'未定义
这很奇怪。我没有这样使用它,但我看到了它(见第22行)。也许它不只是在视图中工作。奇怪的是,我会用它玩更多的游戏,但现在看来我必须保持ID的硬编码,如果我想重用该模块的话,就不太理想了。。。
<field name="light_system"
   placeholder="Lighting System"
   context="{'default_categ_id':ref('name_of_the_module.lighting_id')}"/>