Odoo TypeError: ожидаемая строка или буфер - PullRequest
0 голосов
/ 10 октября 2018

У меня есть это новое поле для модели статуса праздника hr

class CodeLeaveType(models.Model):
    _inherit = 'hr.holidays.status'

    code = fields.Char('Código para regla salarial', required=True)

    @api.one
    @api.onchange('code')
    def _check_code(self):
        pattern = "^[A-Z0-9]{3,6}$"
        if re.match(pattern, self.code) == None:
            self.code = ""
            return {
                'warning': {'title': 'Error',
                            'message': 'Formato de código para regla salarial no valido, debe incluir términos alfanúmeros en mayúsculas sin espacios, longitud máxima de caracteres 6', }
            }

Но, когда я пытаюсь создать новый статус праздника, получаю эту ошибку:

e1

Затем, когда я закрываю ошибку, мой метод onchange не работает нормально Я получаю эту ошибку.

e2

Я не понимаю, пожалуйста, помогите мне.Может быть, это регулярное выражение?

Мне нужен код только в верхнем регистре или цифры длиной от 3 до 6

РЕДАКТИРОВАННЫЕ

Я изменяю регулярное выражение на

class CodeLeaveType(models.Model):
    _inherit = 'hr.holidays.status'

    code = fields.Char('Código para regla salarial', required=True)

    @api.multi
    @api.onchange('code')
    def _check_code(self):
        if self.code:
            pattern = "^[A-Z0-9]{3,6}$"
            if re.match(pattern, self.code) == None:
                self.code = ""
                return {
                    'warning': {'title': 'Error',
                                'message': 'Formato de código no valido, debe incluir términos alfanúmeros y guion (si aplica), longitud 3 a 6 caracteres', }
                }

И метод работает нормально !!!в чем причина этой ошибки?

1 Ответ

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

Удалите код @api.multi, потому что вы будете взаимодействовать только с одной записью за раз.

...