如何在 python 代码中重定向到另一个表单视图 - Odoo 8

How to redirect to another form view in python code - Odoo 8

通过单击按钮,用户应根据给定值创建新订单,并直接重定向到新创建订单的表单视图。通过按钮调用以下方法:

@api.one
def method_name(self):
    [...]       
    vals = [...]
    new_order = self.env['sale.order'].create(vals)
    self.write({ 'state': 'review', })
    return {
        'type': 'ir.actions.act_window',
        'name': 'sale.view_order_form',
        'res_model': 'sale.order',
        'res_id': new_order.id,
        'view_type': 'form',
        'view_mode': 'form',
        'target' : 'self',
    }

遗憾的是没有任何反应,我不知道下一步该尝试什么。我试图将目标更改为 newcurrent 或名称,但没有任何变化。都没有成功。

编辑: 查看我对 Carlos 回答的评论。

要从按钮执行模型的方法,您必须在 xml 视图中将按钮定义为 object 类型:

<button name="method_name" string="My Button" type="object"/>

然后在你的 model 中,如果你想在做某事后重定向到另一个视图,你必须 return 新操作:

@api.multi
def method_name(self):
    .......
    return {
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'my.model',
        'target': 'current',
        'res_id': the_resource_id,
        'type': 'ir.actions.act_window'
    }