Ограничения с лучшей производительностью - PullRequest
0 голосов
/ 10 сентября 2018

В моей модели client_id должен быть один для каждого продукта.Поэтому я хочу наложить ограничение на эту ситуацию.

class ClientSystemCode(models.Model):
    _name = 'client.system.code'
    _description = 'Client System Code'

    client_id = fields.Many2one('res.partner', 'Client')
    product_id = fields.Many2one('product.template', 'Product')
    client_sys_code = fields.Char('Client system code')

в модели product.template мои ограничения выглядят так.и всегда будет не так много строк.Но ограничение в client.system.code должно быть лучше с точки зрения производительности, потому что может быть тысячи строк.Так есть ли какие-нибудь лучшие решения?

1 Ответ

0 голосов
/ 10 сентября 2018

Вы легко сделаете это, используя ограничение sql:

class ClientSystemCode(models.Model):
    _name = 'client.system.code'

    _sql_constraints = [
        ('client_product_unique', 'unique (client_id, product_id)', 'Product can't have more than one client code with same client'),
    ]
...