如何在OpenERP返回中返回多个表单视图?

1 投票
1 回答
1072 浏览
提问于 2025-04-17 23:46
def create_forms(self,cr,uid,ids,context=None):
    mod_obj = self.pool.get('ir.model.data')
    res = mod_obj.get_object_reference(cr, uid, 'project_inherited', 'project_forms_form')
    frm_ids=[1,2,3,4,5]
    return {
               'name': 'Control Forms',
                'view_type': 'form',
                'view_mode': 'form',
                'view_id': [res and res[1] or False],
                'res_model': 'project.forms',
                'context': "{}",
                'type': 'ir.actions.act_window',
                'nodestroy': True,
                'res_id': frm_ids or False,
           }

但是每次我调用这个方法时,它只对一个 frm_ids 工作得很好,但在上面的情况下,它给我显示了以下错误——列表对象是不可哈希的。那么有没有办法在按钮点击时返回多个表单呢……?

1 个回答

1

我知道的情况是,这样做不符合OpenERP的设计模式。你的按钮会返回一个动作给客户端(就是一个窗口动作),然后客户端再向服务器请求表单。你可以把这个想象成给浏览器发送一个HTTP重定向。你不能发送多个重定向。

如果你想让用户选择使用表单视图还是列表视图,你可以确保这两种视图都为这个模型定义好,然后放两个按钮,或者总是先发送到表单视图,让用户自己切换到列表视图。

撰写回答