Openerp 从按钮或菜单打开特定对象

Openerp 从按钮或菜单打开特定对象,openerp,Openerp,按下菜单项或按钮时,如何打开特定对象?如果您想要像对象一样对配置进行排序(只需要一个对象来保存数据,例如用户名和密码),那么它非常有用 我试过使用view\u init方法和active\u id上下文键,但运气不好。有人能给我指出正确的方向吗?首先,您必须为您的模型创建视图(树、表单、搜索等)。然后为模型创建动作,例如 <record model="ir.actions.act_window" id="my_unique_action_id"> <field name

按下菜单项或按钮时,如何打开特定对象?如果您想要像对象一样对配置进行排序(只需要一个对象来保存数据,例如用户名和密码),那么它非常有用


我试过使用
view\u init
方法和
active\u id
上下文键,但运气不好。有人能给我指出正确的方向吗?

首先,您必须为您的模型创建视图(树、表单、搜索等)。然后为模型创建动作,例如

<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>
<menuitem action="my_unique_action_id" id="my_unique_menu_id" parent="your parent_menu_id"/>

动作名称
您的\u型号\u名称
形式
树
这里提供您的域条件作为元组列表
这里提供你的上下文作为字典
然后创建一个包含action=您的action id的菜单

<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>
<menuitem action="my_unique_action_id" id="my_unique_menu_id" parent="your parent_menu_id"/>

如果父菜单位于另一个模块中,则提供
parent=其他模块名称。父菜单id


注意:我说的唯一的_操作_id _名称和唯一的_菜单_id _名称是指该模块中的id应该是唯一的。相同的操作id可以在不同的模块中使用。

我遇到了类似的问题,并找到了解决方案: 在
ir.actions.act\u窗口的定义(XML)中,尝试添加
res\u id
字段和要显示的记录的id。如果这是计算出的id,也许您可以使用同一字段的“eval”属性来获得它

例如:

<field name="res_id">5</field>
5
或者(我不知道它是否有效)


当然,对于第二种方法,不要忘记定义函数

当我想在一个按钮调用的方法中返回一个
ir.actions.act\u窗口时,它对我很有用(这个方法是用python定义的,所以我很容易得到我想要的id)

希望它能帮助你或其他人