簡體   English   中英

Odoo TypeError:預期的字符串或緩沖區

[英]Odoo TypeError: expected string or buffer

我有這個新的小時假期狀態模型字段

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之間的數字的代碼

EDITED

我通過更改正則表達式

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', }
                }

和該方法正常工作! 此錯誤的原因是什么?

刪除@api.multi代碼,因為您一次僅與一條記錄進行交互。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM