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
)应引用应通过菜单打开的模型。现在你有了一些选择。其中三个很容易理解:

  • 在服务器操作中使用type
    code
    ,并调用模型方法。该方法应以字典的形式返回窗口操作。代码如下所示:
  • action=model.my\u model\u method\u returning\u an\u action()
    
  • 在服务器操作中使用type
    code
    ,并动态创建操作。代码如下所示:
  • 操作={
    'type':'ir.actions.act_window',
    “视图类型”:“表单”,
    “视图模式”:“树,窗体”,
    'res_model':'my.model',
    '目标':'当前',
    }
    如果env['res.config_settings']中的env.user。请检查我的m2m()
    操作['context']={'search\u default\u Product':1}
    
  • 在服务器操作中使用type
    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_设置中)。如果是真的,我需要禁用过滤器,否则,启用过滤器。这应该符合我的想法。你能举个例子,说明菜单项上的服务器操作如何调用方法吗?我不知道这一点。这使得奥多更加灵活。谢谢分享。