2012-04-19 55 views
2

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

客户端:在Windows GTK-6.0.3

服务器:6.0.2 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

回答

0

我看不出什么明显的错误。在developer book中讨论了target属性。我可以建议的唯一的事情是在源代码中查找使用target属性的示例,并查看它们与您的不同之处。

+0

我已经签了几个插件源,但没有发现任何差异。我也测试过了gtk-client-6.1-win **和** web-6.0.3-client **,gtk客户端总是有同样的问题。但Web客户端是好的。 – jayven 2012-04-20 03:22:40

+0

其他插件是否与您的代码有相同的问题?如果没有,你可以做一些旧技巧来慢慢消除两组代码之间的所有差异。这很慢,但很有效。 – 2012-04-20 05:21:17

0

要停止客户端消失,你需要添加: “nodestroy”:的确,