- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我注意到 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.'),
]
地点:
email_uniq
表示约束名,
unique(email)
表示 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']),
]
地点:
_check_qty_and_unitprice
是我们需要应用逻辑的函数名称。
'Qty must be more than 0'
是一条消息,当违反约束时,它将显示在弹出窗口中(python 函数返回 False
).
['product_qty', 'cost_unit']
是一个字段名称列表,这意味着将对这两个字段触发约束。
从新的 Odoo API python constraint
开始,有一个新的和更简单的装饰器。下面的例子可以这样写:
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")
关于python - _sql_constraints 和 _constraints 在 OpenERP/Odoo 上的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736799/
我有这个限制: _constraints = [ (_unique_invoice_per_partner, _('The Document you have been enteri
我注意到 Odoo ERP 有两种限制。但我想知道 _sql_constraints 与 _constraints 之间的区别是什么? _sql_constraints = { ('email
我注意到 Odoo v10 社区模块上几乎没有 _constraints 声明,但有很多 _sql_constraints _constraints 是否已被弃用,还是只是巧合? 最佳答案 _cons
我是一名优秀的程序员,十分优秀!