【发布时间】:2022-08-02 13:05:14
【问题描述】:
我有一个库存模块。我想在创建数据之前检查数据库。检查参考代码。如果 ref_code 已经存在,则取消创建。
这是我的 .py 文件:
ref_code = fields.Char(string=\"Referans Numarası: \", required=True, tracking=True, related=\"products_id.ref_no\")
#product_name = fields.Char(string=\"Ürün Adı: \", required=True, tracking=True)
product_description = fields.Char(string=\"Ürün Tanımı: \", tracking=True,)
teslim_alan = fields.Char(string=\"Teslim Alan: \", required=True, tracking=True,)
teslim_eden = fields.Char(string=\"Teslim Eden: \", required=True, tracking=True,)
quantity = fields.Float(string=\"Miktar: \", required=True, tracking=True)
price = fields.Float(string=\"Fiyat(€): \", required=True, tracking=True, related=\"products_id.unit_price\")
unit_price = fields.Float(string=\"Birim Fiyat(€): \", compute=\"_unitPriceCalcuteFunc\")
scrap_quantity = fields.Float(string=\"Hurdaya Taşınacak Miktar: \")
warehouse_id = fields.Many2one(\'ware.houses\', string=\'Depo Adı: \')
products_id = fields.Many2one(\'products\', string=\'Ürün: \')
state = fields.Selection([
(\'unapproved\', \'Çıkış İçin Onay Verilmedi.\'),
(\'approved\', \'Çıkış İçin Onay verildi.\')], string=\"Status\", default=\"unapproved\", tracking=True)
cikis_line_ids = fields.One2many(\'inventory.out.report.lines\', \'inventory_id\', string=\'Çıkış Listesi\')
@api.model
def create(self, values):
global count
count = 0
value = self.env[\'inventory.menu\'].search([])
for record in values:
for v in value:
print(v.ref_code, record.ref_code)
if(v.ref_code == record.ref_code):
count += 1
return print(\"Zaten Var!\")
if(count == 0):
return super(InventoryMenu, self).create(values)
我可以在 db 中找到所有数据。没关系。但是当前数据不存在,我不能使用它。我需要将当前数据与数据库数据进行比较。 我该怎么做?非常感谢..
-
将unique 约束添加到
ref_code字段 -
我该如何添加?我找不到
-
您可以在我评论中的链接中使用_sql_constraints,
-
您需要添加约束并在其中添加验证错误只需阅读本文cybrosys.com/blog/python-model-constraints-odoo-13