OpenERP/Odoo 上 _sql_constraints 和 _constraints 之间的区别?

2024-01-12

我注意到 Odoo ERP 有两种限制。 但我想知道 _sql_constraints 与 _constraints 之间有什么区别?

_sql_constraints = {
    ('email_uniq', 'unique(email)', ' Please enter Unique Email id.')
}

_constraints=[
    (_check_qty_and_unitprice, u'Qty must be more than 0',['product_qty', 'cost_unit']),
]

_sql_constraints意味着它将在 postgresql 数据库端设置约束。

_sql_constraints = [
     ('email_uniq', 'unique(email)', ' Please enter Unique Email id.'),
     ]

Where:

  • email_uniq表示约束名称,

  • unique(email) means unique是约束的名称。email是一个字段名称,该约束将应用于该字段。

  • 'Please enter Unique Email id.'是一条消息,当违反约束时,它将显示在弹出窗口上。

_constraints是Python约束。我们可以给出我们的逻辑来设置约束。例如:

_constraints = [
     (_check_qty_and_unitprice, u'Qty must be more than 0', ['product_qty', 'cost_unit']),
     ]

Where :

  • _check_qty_and_unitprice是我们需要应用逻辑的函数名称。

  • 'Qty must be more than 0'是一条消息,当违反约束时它将显示在弹出窗口上(python 函数返回False).

  • ['product_qty', 'cost_unit']是字段名称列表,这意味着将为这两个字段触发约束。

截至新Odoo API python constraint have a 新的和更简单的装饰师。下面的例子可以这样写:

from openerp.exceptions import ValidationError

@api.constraints('product_qty', 'cost_unit')
def _check_something(self):
    for record in self:
        if record.product_qty < 1:
            raise ValidationError("Qty must be more than 0")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenERP/Odoo 上 _sql_constraints 和 _constraints 之间的区别? 的相关文章

随机推荐

  • OnNavigedTo 重写方法中“base.OnNavieratedTo(e)”的用途是什么?

    当重写页面中的 OnNavigedTo 方法时 他们将这行代码放入其中 base OnNavigatedTo e 我一直在删除它 但没有注意到任何奇怪的行为 这行代码是做什么用的 我们应该离开它吗 或者这就像一个占位符 我很确定这不是特定于
  • 在 Swift 中检测 GMSPolyline 上的点击?

    我正在努力检测在我的 Google 地图上绘制的 GMSPolyline 上的点击 它与 GMSpolygones 配合得很好 但同样的方法似乎不适用于折线 我当前适用于多边形的方法是 if GMSGeometryContainsLocat
  • 带有 jvm 参数的可运行 jar

    我试图使用 Eclipse 创建一个可运行的 jar 文件 问题是我在 Eclipse 中添加到运行配置中的 vm 参数没有以任何方式保存 我知道我可以创建一个批处理文件来运行带有所需参数的 jar 但我希望我的用户只运行 jar 本身 因
  • 调整 ToolStripButton 的大小以适合完整的背景图像

    我的目标是完全适合 toolStripButton 和 toolStripDropDownButton 中的图像 如果按钮中的图像设置了图像属性 我无法完全适应按钮中的图像 因为边距 边框或按钮的某些东西 我不太清楚 所以我尝试使用 Bac
  • autopep8 似乎没有找到配置文件?

    根据 autopep8 的文档 此处 https github com hhatto autopep8 configuration https github com hhatto autopep8 configuration 如果我在 gi
  • Route.Component 没有任何构造或调用签名 - React Router with TypeScript

    路线是根据对象列表构建的 但打字稿突出显示了错误 属性 IRoute component React ReactNode JSX 元素类型 route component 没有任何构造或调用签名 在纯 JavaScript 中 一切都运行良
  • 如何存根 Typescript 接口/类型定义?

    我在 AngularJS 1 X 项目中使用 Typescript 我使用不同的 Javascript 库来实现不同的目的 为了对我的源进行单元测试 我想使用类型 接口 来存根一些依赖项 我不想使用 ANY 类型 也不想为每个接口方法编写一
  • 使用 Java 将变量值插入 SQL Server

    到目前为止 只有当我在executeUpdate 语句中声明值时 我才能将数据插入到我的SQL 表中 我想知道是否有一种方法可以将这些值作为变量传递 我将在执行方法中将其声明为参数 如下所示 public void updateSQL St
  • 如何更快、更智能地突出显示单词/术语?

    我有一些文字 p class drag Hello world Attack on Titan season two p 目前 如果用户想要用光标突出显示单词 术语 他们将逐个字母地单击并拖动 我希望这个过程能够更快一些 例如 如果用户开始
  • cron 作业不会写入文件

    我运行 Windows 2003 服务器并尝试每 15 分钟运行一次这样的代码 require db connect php conn db connect list online brukere flytt funksjon til se
  • 角度 js 工厂内的访问范围

    我正在使用离子框架 并且需要能够从代码中的多个位置调用弹出窗口 因此我想将其移至工厂中 弹出窗口使用输入字段 我想获取它的值 通常我会打电话 scope parentGate answer但因为它在工厂里 所以我无法访问范围 有什么想法如何
  • 使用 servlet 在 Java 中上传文件

    我正在使用 javazoom 进行上传 protected void processRequest HttpServletRequest request HttpServletResponse response throws Servlet
  • 拒绝可排序列表中无效的可排序项目

    我尝试了很多方法但没有成功 我有两个相互连接的可排序列表 问题是列表 A 可以接受其中的任何列表项 但是列表 B 只能接受具有 class abc 的项目 代码如下 ul li item A1 li li item A2 li li cla
  • mysql-connector不会导入到pycharm中的脚本中

    我已经使用 pip 成功安装了 mysql connector Installing collected packages mysql connector Running setup py install for mysql connect
  • 模块重新加载的 isinstance 行为

    给定以下两个 py 文件 aclass py class A object pass main py def importer klass Used to import classes from there python qalname i
  • 我可以从 bash 中的定界文档中读取行吗?

    这就是我正在尝试的 我想要的是最后一个echo循环说 一二三四测试1 它不起作用 read line即将空空如也 这里有什么微妙的地方吗 或者这根本行不通 array one two three echo array one two thr
  • Python:将utf-8字符串转换为字节字符串[重复]

    这个问题在这里已经有答案了 我有以下函数从字节序列中解析 utf 8 字符串 注意 length size 是表示 utf 8 字符串长度所需的字节数 def parse utf8 self bytes length size length
  • 如何在解析查询中包含超时?

    我的问题是关于 Android 的 parse com 查询 以及如果查询响应时间过长如何设置超时 例如 我有一个查询 我从 parse com 获取字符串列表 如果从 parse com 接收此查询需要很长时间 例如十秒 我希望用户能够取
  • int 的大小是否取决于编译器和/或处理器?

    整数的大小取决于编译器 操作系统和处理器吗 这个问题的答案取决于我们愿意脱离实际考虑的程度 最终 理论上 C 和 C 中的一切都取决于编译器 并且仅取决于编译器 硬件 操作系统根本不重要 编译器可以自由地实现硬件抽象层any厚度并模仿任何东
  • OpenERP/Odoo 上 _sql_constraints 和 _constraints 之间的区别?

    我注意到 Odoo ERP 有两种限制 但我想知道 sql constraints 与 constraints 之间有什么区别 sql constraints email uniq unique email Please enter Uni