如何基于odoo中的选择来提升Usererror?

时间:2017-11-02 12:40:54

标签: openerp odoo-8 odoo-9 odoo-10

我继承了purchase.order并添加了一个选择字段(固定,百分比)和一个浮点字段。当我选择百分比时,浮点值不应该大于100并且应该抛出错误。

我怎样才能做到这一点?

这是我的代码

class PurchaseOrder(models.Model):
_inherit = "purchase.order"
_description="Purchase the products"

discount=fields.Selection([('fixed','fixed Price'),('percentage','Percentage')],string="Discount")
amount=fields.Float("Amount")

@api.multi
@api.constrains('amount')
def Limited(self):
    if self.discount=='percentage'and self.amount > 100:
        raise UserError(_('Please enter proper amount'))

3 个答案:

答案 0 :(得分:1)

您可以尝试以下代码:

@api.one
@api.constrains('amount')
def Limited(self):
    if self.discount=='percentage' and self.amount > 100:
        raise UserError(_('Please enter proper amount'))

答案 1 :(得分:0)

尝试使用以下代码。

@api.onchange('amount','discount')
def onchange_amount_discount(self):
    if self.discount=='percentage' and self.amount > 100:
        raise UserError(_('Please enter proper amount')

注:

更新金额折扣字段时,将触发Onchange方法。

答案 2 :(得分:0)

约束和验证错误总是有帮助的。