Openerp act_window弹出一个新窗口,但主客户端消失了

时间:2012-04-19 10:10:47

标签: openerp

我正在构建一个openerp客户模块,在树状视图中,每个条目都有一个按钮,当按下时,将触发act_window动作并打开一个新的弹出窗口,但同时,主要gtk客户端消失了(只剩下弹出窗口)。此外,我已将“目标”设置为“新”,但仍然相同。有什么想法吗?

客户端:Windows上的gtk-6.0.3

server:6.0.2 on debian 2.6.32

xml看起来像:

<field name="type">tree</field>
<field name="arch" type="xml">
    <tree string="Field Schema">
        <field name="field_name" />
        <field name="field_type" />
        <button name="edit" type="object" string="View and Edit" icon="gtk-go-forward" />
    </tree>
</field>

和触发的编辑功能如下:

def edit(self, cr, uid, ids, context=None):
    obj_name = some_fn_dynamic_get_obj_name_from_ids(ids)
    obj = self.pool.get(obj_name)
    if not obj:
        raise osv.except_osv('not supported')
    res_id = obj.create(....)
    ...
    return {
        'type': 'ir.actions.act_window',
        'name': 'View and Edit',
        'view_mode': 'form',
        'view_type': 'form',
        'res_model': obj_name,
        'res_id': res_id,
        'target': 'new',
        'context': context,
    }

更新:在调试到客户端的源代码后,我终于发现:我犯了一个拼写错误: nodestory ,其中正确的应该 nodestroy

    return {
        'type': 'ir.actions.act_window',
        ...
        'context': context,
        'nodestroy': True,
    }

T_T

2 个答案:

答案 0 :(得分:0)

我看不出任何明显的错误。 target中讨论了target属性。我唯一可以建议的是在源代码中查找使用{{1}}属性的示例,看看它们与您的不同之处。

答案 1 :(得分:0)

要停止客户端消失,您需要添加: 'nodestroy':是的,