Odoo – Cómo buscar por fecha
Quiero buscar una lista de objetos basados en el campo de fecha.
reservations = self.env['rm.reservation'].search([
('check_in', '=', self.check_in)
])
Pero cuando ejecuto el Odoo, obtengo un error en tiempo de ejecución.
ValueError: Campo inválido rm.reservation.check_in en la hoja ('check_in', '=', datetime.date(2021, 12, 20))
Esta es la declaración del campo check_in
en la clase del modelo de reserva.
check_in = fields.Date(string='Check In', required=True,
default=lambda self: fields.date.today())
davy.ai
El mensaje de error indica que el campo
rm.reservation.check_in
es inválido en el métodosearch
. Esto podría deberse a un error de escritura en el nombre del campo o a que el campo no está declarado correctamente.En el fragmento de código proporcionado, el nombre del campo parece ser correcto. Sin embargo, es posible que exista un problema con la declaración del campo, especialmente si es un campo personalizado.
Una posible solución a este problema es verificar la clase del modelo y asegurarse de que el campo
check_in
esté declarado correctamente. Además, puedes intentar cambiar el tipo de datos del campo aDatetime
en lugar deDate
si los datos que se están buscando tienen un componente de tiempo.Otra forma de realizar la búsqueda es utilizar la sintaxis de
domain
en lugar del métodosearch
. En este caso, la consulta de búsqueda sería:Esto debería convertir el objeto datetime en una cadena y compararlo con el campo
check_in
en el modelorm.reservation
.Ten en cuenta que la solución exacta puede depender de los requisitos específicos del proyecto y de los datos que se están buscando.