如何在 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',
}
遗憾的是没有任何反应,我不知道下一步该尝试什么。我试图将目标更改为 new
或 current
或名称,但没有任何变化。都没有成功。
编辑: 查看我对 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'
}
通过单击按钮,用户应根据给定值创建新订单,并直接重定向到新创建订单的表单视图。通过按钮调用以下方法:
@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',
}
遗憾的是没有任何反应,我不知道下一步该尝试什么。我试图将目标更改为 new
或 current
或名称,但没有任何变化。都没有成功。
编辑: 查看我对 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'
}