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'存在重复的内容!')
        ]
  • 相关阅读:
    mysql的锁
    设计模式相关
    分布式缓存
    myBatis相关
    mevan相关
    Java 一些缩写的解释
    Spring相关
    Java中PreparedStatement和Statement的用法区别
    Java线程池
    spring中的事务传播机制
  • 原文地址:https://www.cnblogs.com/ygj0930/p/10826164.html
Copyright © 2011-2022 走看看