zoukankan      html  css  js  c++  java
  • Odoo中的约束

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826164.html

    一:装饰器约束(字段约束)

     装饰器参数指定了约束的字段,当涉及的字段中任一发生改变时触发方法执行。如果不满足约束条件,该方法将引发异常。

    @api.constrains('约束字段')
    def _check_something(self):
     for record in self:
         if record.约束字段 op 值:
             raise ValidationError("异常信息")

    二:代码约束(函数约束,代码层面的约束)

    @api.multi
        def _check_XX(self):
          //字段校验函数
            if ...:
               return False
            return True
    
        _constraints = [
            (_check_XX, u'约束异常信息!', ['约束的字段', ...]),]

    三:Sql约束(数据库层面的约束)

        sql约束:使用_sql_constraints属性

        属性值是一个列表,每一个列表元素有三个内容:(name, sql_definition, message):

             name是约束名,

             sql_definition是一个postgresql语句,可以为uniqe检查、或者用聚集函数判断某字段值等等,结果返回值是布尔类型即可,

             message是校验失败时返回的错误消息。

    _sql_constraints = [
            ('约束名', 'postgresql校验语句', u'报错信息!')
        ]

       

        例如,唯一性约束:

    _sql_constraints = [
            ('xx_uniq', 'unique (唯一性的字段,可以多个字段复合)', u'存在重复的内容!')
        ]
  • 相关阅读:
    C++中堆和栈的区别
    JavaScript 点击切换菜单
    正则表达式过滤掉CSS样式
    单例模式DEMO
    将来的你,一定会感谢现在努力的自己
    1066 图像过滤 (15 分)
    1076 Wifi密码 (15 分)
    1071 小赌怡情 (15 分)
    1046 划拳 (15 分)
    1086 就不告诉你 (15 分)
  • 原文地址:https://www.cnblogs.com/ygj0930/p/10826164.html
Copyright © 2011-2022 走看看