как наследовать _constraints на odoo v8? - PullRequest
0 голосов
/ 12 июня 2018

Что касается работы _sql_constraints:

def _auto_init(self, cr, context=None):
    self._sql_constraints = [
            ('planned_field_uniq', 'unique(field1,field2,)', 'Already exist'),
    ]
    super(object_name, self)._auto_init(cr, context)

не могу понять это для _constraints Я пробовал также

@api.constraints('field1','field2')
def _check_duplicate_(self):
    _logger.info('MY CONSTRAINT IS CALLED')
    import pdb;pdb.set_trace()

1 Ответ

0 голосов
/ 12 июня 2018

В python вы можете обезопасить любую вещь, которую можете попробовать, используя эту технику, надеясь, что она будет работать

Импортируйте класс, который вы хотите изменить, его атрибуты ограничений.

       from openerp.addons.addon_name....class_name

       class_name._constraints  = new_value

Этот код выполняетсядо того, как Odoo создаст глобальный класс Model из списка классов.Таким образом, когда odoo начнет проверять ограничения, это значение будет изменено, потому что это значение всегда извлекается из этого класса.

Поскольку это не sql_constrains, это должно работать, вы меняете его во время выполнения.

...