我知道我们可以启用搜索过滤器
<field name="context">{'search_default_Product':1}</field>
但是,如果我想以编程方式启用过滤器,该怎么办?我可以在哪里放置代码以启用它?
谢谢
答案 0 :(得分:1)
您可以将菜单项的操作更改为服务器操作。可以在菜单项中引用任何操作。
服务器操作(ir.actions.server
)应该引用应通过菜单打开的模型。现在您有了一些选择。希望其中三个易于理解:
code
并调用模型方法。该方法应以字典形式返回窗口动作。代码如下: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
并调用准备好的窗口操作,但要操纵上下文: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}
答案 1 :(得分:0)
您必须在ir.actions.act_window中编写此代码,以便它可以自动启用过滤器。