Entradas

Mostrando las entradas etiquetadas como _sql_constraints

33. Errores de borrado de registro por integridad referencial. Permisos adicionales. Administrador / Ajustes

Imagen
 1. Borrar un usuario: Constraint res_users_apikeys_user_id_fkey Se produce cuando este usuario tiene registros en la tabla res.users.apikeys Para ello consultamos por API: print (xmodoo . request_props( myPropsOdoo \ , 'res.users.apikeys' , 'search_read' \ ,[[[ 'id' , '>' , 0 ]]], { 'fields' : [], 'limit' : 500 } \ )) Y sale: [ { 'id' : 1 , 'name' : 'Proves Ximo' , 'user_id' : [ 2 , 'Ximo Dante ' ], 'scope' : False , 'create_date' : '2024-02-20 16:45:13' , '__last_update' : '2024-09-25 08:04:31' , 'display_name' : 'Proves Ximo' }, { 'id' : 2 , 'name' : 'Pruebas Borrar' , 'user_id' : [ 2108 , 'Usario Para Borrar' ], 'scope' : False , 'create_date' : '2024-05-21 08:57:06' , '__last_update' : '2024-09-25 08:04:31' , ...

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...