Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

349
Views
¿Cómo usar DateTimeTZRange en FastAPI con SQLModel (sqlalchemy + pydantic)?

Estoy trabajando en un proyecto FastAPI que usa SQLModel como ORM. Según tengo entendido, SQLModel es una especie de contenedor sobre sqlalchemy y pydantic que hace que los dos funcionen juntos. Tengo un modelo que se ve así:

 from psycopg2.extras import DateTimeTZRange from pydantic import conlist from sqlalchemy import Column from sqlalchemy.dialects.postgresql import TSTZRANGE from sqlmodel import Field from app.models.base import BaseModel class MyModel(BaseModel, table=True): # time_range: conlist(datetime, min_items=2, max_items=2) = Field( time_range: DateTimeTZRange = Field( sa_column=Column(TSTZRANGE()), nullable=False, index=False ) class Config: arbitrary_types_allowed = True

Cuando intento guardar una instancia de este modelo, aparece el siguiente error:

 sqlalchemy.exc.DBAPIError: (sqlalchemy.dialects.postgresql.asyncpg.Error) <class 'asyncpg.exceptions.DataError'>: invalid input for query argument $1: DateTimeTZRange(datetime.datetime(2019, ... (list, tuple or Range object expected (got type <class 'psycopg2._range.DateTimeTZRange'>)) [SQL: INSERT INTO my_model (time_range) VALUES (%s) RETURNING my_model.id] [parameters: (DateTimeTZRange(datetime.datetime(2019, 4, 2, 23, 0, tzinfo=<UTC>), datetime.datetime(2019, 4, 2, 23, 30, tzinfo=<UTC>), '[)'))]

La línea comentada (usando conlist ) no dio ningún error, pero siempre guardó null en la base de datos. No pude encontrar ningún recurso o documentación en línea sobre cómo hacer que esto funcione. ¿Alguna idea de lo que podría estar haciendo mal?

over 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!