Odoo 在act_窗口中启用搜索筛选器
我知道我们可以像这样启用搜索过滤器Odoo 在act_窗口中启用搜索筛选器,odoo,odoo-10,odoo-11,odoo-12,Odoo,Odoo 10,Odoo 11,Odoo 12,我知道我们可以像这样启用搜索过滤器 <field name="context">{'search_default_Product':1}</field> {'search\u default\u Product':1} 但是如果我想以编程方式启用过滤器呢?我可以将代码放在哪里启用它 谢谢,您必须在ir.actions.act_窗口中写入此命令,以便它可以自动启用过滤器。您可以将菜单项的操作更改为服务器操作。可以在菜单项中引用任何操作 服务器操作(ir.actions.
<field name="context">{'search_default_Product':1}</field>
{'search\u default\u Product':1}
但是如果我想以编程方式启用过滤器呢?我可以将代码放在哪里启用它
谢谢,您必须在ir.actions.act_窗口中写入此命令,以便它可以自动启用过滤器。您可以将菜单项的操作更改为服务器操作。可以在菜单项中引用任何操作 服务器操作(
ir.actions.server
)应引用应通过菜单打开的模型。现在你有了一些选择。其中三个很容易理解:
code
,并调用模型方法。该方法应以字典的形式返回窗口操作。代码如下所示:action=model.my\u model\u method\u returning\u an\u action()
code
,并动态创建操作。代码如下所示:操作={
'type':'ir.actions.act_window',
“视图类型”:“表单”,
“视图模式”:“树,窗体”,
'res_model':'my.model',
'目标':'当前',
}
如果env['res.config_settings']中的env.user。请检查我的m2m()
操作['context']={'search\u default\u Product':1}
code
,并调用准备好的窗口操作,但操作上下文:action=env.ref('my.external.id.of.the.action.to.call').read()[0]
如果env['res.config_settings']中的env.user。请检查我的m2m()
如果“上下文”起作用:
操作['context']。更新({'search\u default\u Product':1})
其他:
操作['context']={'search\u default\u Product':1}
您的全部要求是什么?一个想法是在菜单项上使用服务器操作,它可以调用返回操作的方法。这将是一种动态设置上下文的方法,但也有其缺点。在打开树状视图之前,我需要检查当前用户是否是所选用户之一(我将此值放在许多字段res.config_设置中)。如果是真的,我需要禁用过滤器,否则,启用过滤器。这应该符合我的想法。你能举个例子,说明菜单项上的服务器操作如何调用方法吗?我不知道这一点。这使得奥多更加灵活。谢谢分享。