按菜单项或按钮时如何打开特定对象?如果您想要对类似配置的对象进行排序(仅需要一个对象来保存数据,例如用户名和密码),这将非常有用。
我尝试使用view_init
方法和active_id
上下文密钥,但没有运气。有人能指出我正确的方向吗?
答案 0 :(得分:9)
我有类似的问题,并找到了解决方案:
在您的ir.actions.act_window
定义(以XML格式)中,尝试添加res_id
字段,其中包含您要显示的记录的ID。如果这是id计算,也许您可以使用相同字段的“eval”属性来获取它。
例如:
<field name="res_id">5</field>
或(我不知道它是否有效)
<field name="res_id" eval="your_func_getting_res_id"/>
当然对于第二种方法,不要忘记定义你的功能。
当我想在一个按钮调用的方法中返回一个ir.actions.act_window
时,它适用于我(在python中定义的方法,所以我很容易得到我想要的id。)
希望它可以帮助你或其他人。
答案 1 :(得分:0)
首先,您必须为模型创建视图(树,表单,搜索等)。然后为模型创建操作,例如
<record model="ir.actions.act_window" id="my_unique_action_id">
<field name="name">Name for the Action</field>
<field name="res_model">your_model_name</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">here_provide_your_domain_conditon_as list_of_tuples</field>
<field name="context">here_provide_your_context_as_a_dictionary</field>
</record>
然后使用action =您的操作ID创建一个菜单。例如
<menuitem action="my_unique_action_id" id="my_unique_menu_id" parent="your parent_menu_id"/>
如果父菜单在另一个模块中,则提供parent=the_other_module_name.parent_menu_id
注意:我已经说过unique_action_id_name和unique_menu_id_name,因为id在该模块中应该是唯一的。相同的操作ID可以在不同的模块中。