Un filtro simple se compone de:
[(Campo de modelo, tipo de comparación, valor o función para la comparación)]
Ejemplo que filtra los registros donde el campo 'date' es la fecha actual:
[('date','=', ((context_today()).strftime('%Y-%m-%d')))]
- Hasta la primera coma es el campo fecha del modelo.
- El segundo parámetro (signo de comparación) puede ser ‘=’,’<’,’<=’,’>=’,’>’,etc según lo que precisemos.
- El tercer parámetro será la fecha dinámica (una función):
- Context_today() se refiere al día actual del sistema, como nos lo pasa en formato fecha y el sistema lo guarda en formato texto lo tenemos que transformar a texto con él .strftime('%Y-%m-%d') donde el %Y es el año, %m el mes y %d el día.
Si por ejemplo queremos que nos ponga los que son mayores al mes en curso (desde el día 1)
[('date','>=', ((context_today()).strftime('%Y-%m-01’)))]
Operaciones con filtros
A los filtros se les puede aplicar diferentes operaciones matemáticas.
Ejemplo de filtro que muestra los registros cuya fecha sea menor a la fecha actual + 10 días
[('date','<=', ((context_today()+datetime.timedelta(days=10)).strftime('%Y-%m-%d')))]