【问题标题】:odoo one2many list remove duplicates itemsodoo one2many 列表删除重复项
【发布时间】:2023-03-27 21:51:01
【问题描述】:

我在 odoo 10 社区中开发了一个购买模块,当我对产品进行监控时,我想在小部件 one2many 列表中禁用重复选择产品,如下图所示: enter image description here

我想防止在产品列表中重复输入这里是我的命令模块的代码:

class PalBl(models.Model):
        _name = 'pal.bl'
        name = fields.Char('Reference', required=True)
        supplier = fields.Many2one('pal.vendor', required=True)
        date = fields.Date('Date', required=True)
        totalHt = fields.Float('Total HT', store=True, readonly=True, compute='_get_tot')
        totalTtc = fields.Float('Total TTC', store=True, readonly=True, compute='_get_tot')
        items_id = fields.One2many('pal.prs.com', 'prod_id')
        dateliv = fields.Date('Date de livraison prévue')
        nb_pr = fields.Integer('Total de Produit')
        state = fields.Selection([(1, 'En attente'), (2, 'Reglée')], 'type', default=1)
        _sql_constraints = [('item_code_uniq', 'unique(items_id.name.code)', "le code d'un produit doit etre unique !")]

这是产品的代码:

    class PalPrcom(models.Model):
            _name = 'pal.prs.com'
            name = fields.Many2one('pal.stock', 'Désignation', required=True)
            code = fields.Char('Ref produit', store=True, readonly=True, compute='_getref', inverse='_gedef')
            quantity = fields.Integer('Quantité', required=True, default=1)
            price = fields.Float('Prix achat HT', store=True, readonly=True, compute='_getref')
            tva = fields.Integer('TVA')
            remise = fields.Integer('Remise')
            prod_id = fields.Many2one('pal.bl')
            _sql_constraints = [ ('quantity_gt_zero', 'CHECK (quantity>0)', 'La quantité de produit doit etre supérieur à zéro!')

]

【问题讨论】:

    标签: odoo-10


    【解决方案1】:

    您可以使用两个 for 循环来遍历您的 one2many 字段并检查重复项

    【讨论】:

    • 请解释@akhil
    【解决方案2】:

    这会起作用。

    _sql_constraints = [('order_name', 'unique (relation_id,field_name_1,field_name_2)',
                     'Duplicates are not allowed!')]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-24
      • 2020-09-12
      • 2014-09-30
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多