在 act_windows 中启用搜索过滤器
Enable search filter in act_windows
我知道我们可以像这样启用搜索过滤器
<field name="context">{'search_default_Product':1}</field>
但是如果我想以编程方式启用过滤器怎么办?我在哪里可以放置启用它的代码?
谢谢
您必须在 ir.actions.act_window 中写入此内容,以便它可以自动启用过滤器。
您可以将菜单项的操作更改为服务器操作。任何操作都可以在菜单项中引用。
服务器操作 (ir.actions.server
) 应引用应通过菜单打开的模型。现在你有一些选择。希望其中三个易于理解:
- 在服务器操作中使用类型
code
并调用模型方法。该方法应该 return 字典形式的 window 动作。代码如下所示:
action = model.my_model_method_returning_an_action()
- 在服务器操作中使用类型
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}
- 在服务器操作中使用类型
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}
我知道我们可以像这样启用搜索过滤器
<field name="context">{'search_default_Product':1}</field>
但是如果我想以编程方式启用过滤器怎么办?我在哪里可以放置启用它的代码?
谢谢
您必须在 ir.actions.act_window 中写入此内容,以便它可以自动启用过滤器。
您可以将菜单项的操作更改为服务器操作。任何操作都可以在菜单项中引用。
服务器操作 (ir.actions.server
) 应引用应通过菜单打开的模型。现在你有一些选择。希望其中三个易于理解:
- 在服务器操作中使用类型
code
并调用模型方法。该方法应该 return 字典形式的 window 动作。代码如下所示:
action = model.my_model_method_returning_an_action()
- 在服务器操作中使用类型
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}
- 在服务器操作中使用类型
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}