如何限制* 2many字段中可以选择的项目数

时间:2016-06-02 16:28:19

标签: openerp odoo-8 odoo-9

我正在尝试限制在* 2many字段中可以选择的特定数量的记录。此限制由另一个字段定义。

我已经定义了我想要限制的字段:

max = fields.Integer('Max partners')
partner_ids = fields.Many2many(comodel_name='res.partner', relation='my_model_partners', column1='mymodel_id', column2="partner_id")

首先我尝试了这个:

<field name="partner_ids" options="{'limit': max}" widget="many2many"/>

但我可以选择超过max个合作伙伴但没有任何反应。第二,我尝试定义constraint以限制partner_ids的数量:

@api.one
@api.constrains('partner_ids')
def _check_limit(self):
    if len(self.partner_ids)>=self.max:
        raise ValidationError("Max number of partners")

这有效,但只有在保存记录时它才会引发错误,但我想要的是限制可以选择的记录数,因此我不能为{{max选择partner_ids条记录。 1}}字段。

0 个答案:

没有答案