Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception 如何处理ODOO9中的异常?_Exception_Odoo 9 - Fatal编程技术网

Exception 如何处理ODOO9中的异常?

Exception 如何处理ODOO9中的异常?,exception,odoo-9,Exception,Odoo 9,我的要求是不销售不同类别的产品,因此我决定覆盖create方法: from openerp import api from openerp.osv import fields, osv from openerp.tools.translate import _ from openerp.exceptions import UserError, ValidationError class sale_order(osv.osv): _inherit = "sale.order" @api.m

我的要求是不销售不同类别的产品,因此我决定覆盖create方法:

from openerp import api
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp.exceptions import UserError, ValidationError
class sale_order(osv.osv):
    _inherit = "sale.order"
@api.model
def create(self, vals):
    product_ids=[]
    product_categ_ids=[]
    if vals.get('name', 'New') == 'New':
        if vals.get('order_line'):
            order_lines_vals=vals['order_line']  
            for l in order_lines_vals:
                for value in l:
                    if isinstance(value, dict):
                        product_ids.append(value['product_id'])
        if product_ids:
            for j in self.env['product.product'].browse(product_ids):
                product_categ_ids.append(j.product_tmpl_id.categ_id.id)
            product_categ_ids=list(set(product_categ_ids))
            if len(product_categ_ids) > 1:
                raise ValidationError(_("It is not possible to add products belonging to many categories(Only one category is allowed)!"))


    result = super(SaleOrder, self).create(vals)
    return result
此代码不允许创建sale.order记录,这很好,但不显示弹出窗口错误,我需要显示此弹出窗口

是否有人正确处理了odoo 9中的例外情况(经典的上升osv除外)

提前谢谢

参考:

try:
     print 100 / 0
     raise UserError(_('foo'))
except Exception as e:
     raise UserError(_(str(e)))