在product.template中,存在字段default_code。是否可以添加sql_constraints,默认代码应该是唯一的。因为此代码不起作用。还是我需要在我的服装模块中覆盖default_code字段?
class ProductProduct(models.Model):
_inherit = 'product.template'
_sql_constraints = [
('code_uniq', 'unique (default_code)', "Default code already exists!"),
]
答案 0 :(得分:2)
将以下行导入python文件:
from openerp.exceptions import ValidationError
任何人都可以在您的课堂上写这个方法:
@api.constrains('default_code')
def _check_default_code(self):
code = self.search([('default_code','=',self.default_code)])
if len(code) > 1:
raise ValidationError(_("Duplicate Record"))
答案 1 :(得分:1)
我将在模型if(changes.accountBalanceStatus.previousValue != changes.accountBalanceStatus.currentValue
|| changes.chart.previousValue != changes.chart.currentValue){
this.renderChart();
}
上添加约束,因为这是真正使用此信息(产品参考)的地方。但是product.product
上的default_code
仅在Odoo V10起可用。在Odoo V8和V9中,它是一个未存储的相关字段,因此在DB中则不是。因此,您必须在模型product.template
上添加约束。
product.product
要知道的要点:如果设置约束的模块在约束失败时被更新(例如,default_code实际上在db中两次),它将不会在db中创建sql约束。因此,您必须清理数据并再次更新模块,或者自己在数据库中创建约束。