Entradas

Mostrando las entradas etiquetadas como validationerror

13. Desarrollando con Odoo (8). Restricciones de campos y de BD. La funcion subrayado "_"

1. Restriciones de formato de campo(en el modelo) Para generar restricciones se utiliza el decorador @api.constrains('campo') que se aplica sobre la función que valida dicho campo. Es bastante útil utilizar regex. Para ello hay que hacer: import re  Veamos nuestro ejemplo concreto regex = re.compile( '^[0-9]{8}[a-z]' , re.I) Siendo: '^' indica que comienza por lo que viene [0-9] indica que el siguiente caràcter es un dígito {8} indica que la condición anterior se repite 8 veces (o sea admite solo 8 dígitos) [a-z] indica una letra en minúscula re.I indica que ignore el caso (admite tanto mayúsculas como minúsculas) O sea quiere que haya 8 dígitos y despues letras ya sean mayúsculas o minúsculas Veamos pues el modelo access_code = fields . Char() @api . constrains( ' access_code ' ) def _check_access_code ( self ): regex = re . compile( '^[0-9]{8}[a-z]' , re . I) for record in self : if len (record . access_code) < 1...

6. Desarrollando con Odoo (4). Manejando el Logger y Excepciones

 1. Lanzar excepciones Para lanzar excepciones hay que: Agregar las dependencias Utilizar el bloque try...catch Lanzar una excepcion RaiseXXXError Veamos los trozos de código necesarios from odoo import models, fields, api from odoo.exceptions import ValidationError from odoo import _ import datetime class task (models . Model): _name = 'ximoapp01.task' -------------- def _get_code ( self ): for record in self : try : record . code = record . name + str (record . id) except : raiseValidationError( _ ( "Error de Ximo..." )) Observar tanto en el import como en la última sentencia, la fución subrayado " _ "!! 2. Manejando el logger Existen varios niveles de log: DEBUG, INFO, WARN, ERROR Para manejar el logger hay que: Verificar/actualizar en el fichero odoo.conf la configuración del logger  (establecer fichero y niveles de log (variables log_level , l og_ha...