在 act_windows 中启用搜索过滤器

Enable search filter in act_windows

我知道我们可以像这样启用搜索过滤器

<field name="context">{'search_default_Product':1}</field>

但是如果我想以编程方式启用过滤器怎么办?我在哪里可以放置启用它的代码?

谢谢

您必须在 ir.actions.act_window 中写入此内容,以便它可以自动启用过滤器。

您可以将菜单项的操作更改为服务器操作。任何操作都可以在菜单项中引用。

服务器操作 (ir.actions.server) 应引用应通过菜单打开的模型。现在你有一些选择。希望其中三个易于理解:

  1. 在服务器操作中使用类型 code 并调用模型方法。该方法应该 return 字典形式的 window 动作。代码如下所示:
action = model.my_model_method_returning_an_action()
  1. 在服务器操作中使用类型 code 并即时创建您的操作。代码如下所示:
action = {
    'type': 'ir.actions.act_window',
    'view_type': 'form',
    'view_mode': 'tree,form',
    'res_model': 'my.model',
    'target': 'current',
}
if env.user in env['res.config_settings'].check_my_m2m():
    action['context'] = {'search_default_Product': 1}
  1. 在服务器操作中使用类型 code 并调用准备好的 window 操作,但操作上下文:
action = env.ref('my.external.id.of.the.action.to.call').read()[0]
if env.user in env['res.config_settings'].check_my_m2m():
    if 'context' in action:
        action['context'].update({'search_default_Product': 1})
    else:
        action['context'] = {'search_default_Product': 1}