您好我在我的向导表单上添加了一个按钮以打开另一个向导,但我不想关闭现有向导,另一个向导的原因只是在用户过滤后传递一些值并选择少量数据。
在我的向导表单上,我添加了一个带有以下代码的按钮
> def action_process_pickings(self, cr, uid, ids, context=None):
> if context is None: context = {}
> context = dict(context, active_ids=ids, active_model=self._name)
>
> return {
> 'name':_("Picking to Process"),
> 'view_mode': 'form',
> 'view_id': False,
> 'view_type': 'form',
> 'res_model': 'packing.wizard',
> 'res_id': ids[0],
> 'type': 'ir.actions.act_window',
> 'nodestroy': True,
> 'target': 'new',
> 'domain': '[]',
> 'context': context,
> }
我认为解决方案是将“nodestroy”设置为等于True,它适用于OpenERP 6.0& 7.0但不是6.1,任何解决方案?
答案 0 :(得分:0)
从内存开始,但是如果你有按钮方法返回None而不是窗口动作,如果会记录警告但是保持窗口就位。很确定这适用于6.1
答案 1 :(得分:0)
回答我自己的问题, 而不是使现有的窗口保持打开状态,最好从第二个弹出窗口返回到第一个窗口的窗口操作。这是我在6.1中找到的最佳方式
例如:
模型A上的按钮代码为:
def buttonA(self,cr,uid,id,context = None): 如果context是None:context = {} context = dict(context,active_ids = ids,active_model = self._name)
return { 'name':_("Picking to Process"), 'view_mode': 'form', 'view_id': False, 'view_type': 'form', 'res_model': 'b', 'type': 'ir.actions.act_window', 'nodestroy': True, 'target': 'new', 'domain': '[]', 'context': context, }
然后,模型B上按钮的代码只是更新数据A,它应该是什么,并返回到带有Windows动作的模型A
def buttonB(self, cr, uid, ids, context=None):
if context is None: context = {}
self.pool.get('a').write(cr, uid, { [the value u want to update] })
return {
'name':_("Picking to Process"),
'view_mode': 'form',
'view_id': False,
'view_type': 'form',
'res_model': 'a,
'res_id': context.get('active_ids')[0],
'type': 'ir.actions.act_window',
'nodestroy': True,
'target': 'new',
'domain': '[]',
'context': context,
}