es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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())
Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el campo rm.reservation.check_in es inválido en el método search. 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 a Datetime en lugar de Date 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étodo search. En este caso, la consulta de búsqueda sería:

    reservations = self.env['rm.reservation'].search([('check_in', '=', fields.Date.to_string(self.check_in))])
    

    Esto debería convertir el objeto datetime en una cadena y compararlo con el campo check_in en el modelo rm.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.

Comments are closed.