attakatara

El sitio del código de todos python, sql, xml …

domain filter odoo

domain

Al manejar grandes flujos de información nos veremos en la necesidad de exportar la misma desde la base de datos (postgresql), es característico en odoo sobre campos relacionales del tipo m2o que tengamos que filtrar ese flujo de información es allí cuando el filtro domain nos es de gran ayuda.

Una condición simple en programación puede ser: si campo1=10

Para poder expresar la misma en Odoo se utiliza una sintaxis entre tuplas del tipo ———>  (‘field_name’, ‘operator’, value), donde “field_name” ser[a un campo válido de la BD (base de datos), o bien el nombre de un objeto en el modelo. “operator” entre los cuales tenemos: =, !=, >, >=, <, <=, like, ilike, in, not in, child_of, parent_left, parent_right (openerp/osv/expression.py), y por ultimo “value” que será un valor valido de comparación. Ahora bien nuestra condición inicial puede quedar de la siguiente manera: domain=[(‘field1′,’=’,10)] donde field1 debe coincidir con un campo en el modelo y 10 sera el valor. Aunque algunas veces podemos sustituir el value por otro campo lo que quedaria asi: domain=[(‘field1′,’=’,’field2′)] donde field1 y field2 son campos del modelo.

Otras condiciones de programación son aplicables a este filtro domain por ejemplo la AND, expresiones como: SI field1=5 y field2=10, la traducción de la misma para Odoo queda: domain = [(‘field1′,’=’,5),(‘field2′,’=’,10)],  otro ejemplo de este operador: domain = [(‘field1′,’=’,field3),(‘field1′,’=’,field3)] en el ultimo se sustituye el value por campos en el modelo.

para el operador OR: SI field1=5 or field2=10, con el filtro domain nos queda: domain = [‘|’, (‘field1′,’=’,5),(‘field2′,’=’,10)] y sustituyendo value por campos: domain = [‘|’, (‘field1′,’=’,field3),(‘field1′,’=’,field3)]

Por supuesto también es admisible el condicionamieto multiple una expresión como: SI field1 = 5 or (field2 ! = 10 and field3 = 12) quedara como: domain = [‘|’,(‘field1′,’=’,5),(‘&’,(‘field2′,’!=’,10),(‘field3′,’=’,’12’))]

Anuncios

Navegación en la entrada única

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: