2016-06-06 2 views
2

Нажав кнопку, пользователь должен создать новый заказ от заданных значений и быть , непосредственно перенаправленный на вид формы только что созданного заказа. Следующий метод вызывается через кнопку:Как перенаправить на другой вид формы в коде python - 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 или имя, но ничего не изменилось. И без успеха.

Редактировать: посмотреть мой комментарий на вопрос Карлоса.

ответ

4

Чтобы выполнить метод вашей модели с помощью кнопки, вы должны определить кнопку как object типа, как это в вашей точки зрения XML:

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

Затем в model, если вы хотите перенаправить на другой после чего вы должны вернуть новое действие:

@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' 
    } 
+0

У меня уже было все на месте, как вы сказали. За исключением __'@api.multi'__. И это сделал трюк! Спасибо за Ваш ответ –