如何使 ean13 在 odoo8 中独一无二
how to make ean13 unique in odoo8
我需要在 Odoov8 中创建一个模块,可以使 product.template 中的 ean13 字段唯一。
这是我的代码:
# -*- coding: utf-8 -*-
from openerp import models, fields, api, _
from openerp.exceptions import ValidationError
class uniq_barcode(models.Model):
inherit = "product.template"
ean13 = fields.Char()
_sql_constraints = [
('ean13_uniq', 'unique(ean13)', _('code bare exisite deja !')),
]
但它不起作用!我从昨天开始就在研究这个
此代码不会 运行 因为您的模型没有继承自 'product.template'。你声明了inherit = "product.template"
,应该是_inherit = "product.template"
,别忘了_
嘿伙计们,我不知道为什么 _sql_constraints 不起作用,但我尝试了其他方法并且它起作用了!这是代码
class uni_barcode(models.Model):
_inherit = "product.product"
@api.one
@api.constrains('company_id', 'ean13', 'active')
def check_unique_company_and_ean13(self):
if self.active and self.ean13 and self.company_id:
filters = [('company_id', '=', self.company_id.id),
('ean13', '=', self.ean13), ('active', '=', True)]
prod_ids = self.search(filters)
if len(prod_ids) > 1:
raise Warning(
_('Code bare existe deja !!'))
瞧,问题解决了
谢谢
我需要在 Odoov8 中创建一个模块,可以使 product.template 中的 ean13 字段唯一。
这是我的代码:
# -*- coding: utf-8 -*-
from openerp import models, fields, api, _
from openerp.exceptions import ValidationError
class uniq_barcode(models.Model):
inherit = "product.template"
ean13 = fields.Char()
_sql_constraints = [
('ean13_uniq', 'unique(ean13)', _('code bare exisite deja !')),
]
但它不起作用!我从昨天开始就在研究这个
此代码不会 运行 因为您的模型没有继承自 'product.template'。你声明了inherit = "product.template"
,应该是_inherit = "product.template"
,别忘了_
嘿伙计们,我不知道为什么 _sql_constraints 不起作用,但我尝试了其他方法并且它起作用了!这是代码
class uni_barcode(models.Model):
_inherit = "product.product"
@api.one
@api.constrains('company_id', 'ean13', 'active')
def check_unique_company_and_ean13(self):
if self.active and self.ean13 and self.company_id:
filters = [('company_id', '=', self.company_id.id),
('ean13', '=', self.ean13), ('active', '=', True)]
prod_ids = self.search(filters)
if len(prod_ids) > 1:
raise Warning(
_('Code bare existe deja !!'))
瞧,问题解决了 谢谢