ツリービューに各エントリのボタンがあり、押すとact_windowアクションがトリガーされ、新しいポップアップウィンドウが開くopenerp顧客モジュールを構築していますが、同時にメインのgtkクライアントが消えました(ポップアップのみが残ります)。また、「ターゲット」を「新規」に設定しましたが、それでも同じです。何か案は?
クライアント: Windows の gtk-6.0.3
サーバー: debian 2.6.32 の 6.0.2
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,
}
更新:クライアントのソースにデバッグした後、最終的に次のことがわかりました:私はタイプミスをしました:正しいものはnodestroyでなければならないnodestory
return {
'type': 'ir.actions.act_window',
...
'context': context,
'nodestroy': True,
}
T_T