Openerp 从manyOne新建时的默认类别
我创建了一个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')] ) 如果我使用“新建”直接从此下拉列表创建一个新项目,则该类别不会设置为“照明系统”,因
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数据文件中创建的记录的外部idcontext=“{'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')}"/>