2012-08-09 66 views
4

如何在按菜单项或按钮时打开特定对象?如果您想要对类似配置的对象进行排序(只需要一个对象来保存数据,例如用户名和密码)就很有用。从按钮或菜单打开特定对象

我试过玩view_init方法和active_id上下文键,但没有运气。有人能指出我正确的方向吗?

回答

9

我也有类似的问题,并找到了解决方法:在你ir.actions.act_window定义(在XML) ,尝试与你想显示你的记录的ID添加res_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)。

希望它可以帮助你或别人。

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可以在不同的模块中使用。