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.

Seleccione solo ciertos campos del modelo utilizando SqlAlchemy Core.

Utilizo la biblioteca de bases de datos codificadas para realizar consultas asincrónicas en la base de datos. La biblioteca está basada en el lenguaje de expresiones de SQLAlchemy Core. Una consulta que devuelve todos los campos funciona.

Y devuelve

[{'id': 18, 'from_user': 4, 'to_user': 1, 'created_at': datetime.datetime(2022, 1, 5, 14, 32, 20, 999835, tzinfo=datetime.timezone.utc), 'to_event': 1, 'status': <invitestatus.created: 'created'="">, 'type': <invitetype.bet: 'bet'="">, 'is_active': True}, ...]

Estoy tratando de seleccionar solo ciertos campos (from_user, created_at, to_event) de una tabla según la documentación. Pero obtengo

TypeError: select() takes from 1 to 2 positional arguments but 4 were given

¿Qué estoy haciendo mal?</invitetype.bet:></invitestatus.created:>

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que el método select() acepta un número variable de argumentos, pero los argumentos no se están pasando como argumentos separados. En cambio, se están pasando como una tupla, lo que está causando el TypeError. Para resolver este problema, cada argumento debería pasarse por separado al método select(), de la siguiente manera:

    events_invites = await database.fetch_all(query=event_invites.select(event_invites.c.from_user, event_invites.c.created_at, event_invites.c.to_event).where(event_invites.c.to_user == pk).order_by(event_invites.c.created_at))
    

    Esto debería seleccionar correctamente solo los campos especificados de la tabla.

Comments are closed.