4

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

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

4

2 回答 2

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)。

希望它可以帮助您或其他人。

于 2012-11-21T13:39:40.730 回答
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 可以在不同的模块中。

于 2012-08-11T08:04:08.327 回答