Estoy tratando de agregar paginación a mi proyecto fastapi. Así que decido usar esto:
Sigo el mismo ejemplo allí, pero por alguna razón recibo este error:
type object 'MOrdenesTrabajo' has no attribute 'count'Aquí está mi código, gracias por su ayuda!!
ruta
@router.get("/ordenes-trabajo") async def read_ot(pagination: Pagination = Depends(), db: Session =Depends(get_db)): filter_kwargs = {} return await pagination.paginate(serializer_class=OtSerializer.MOrdenesTrabajo, **filter_kwargs)modelo piramidal
class MOrdenesTrabajo(ModelSerializer): class Meta: model = OT # <---Model belowmodelo de sqlalchemy
class MOrdenesTrabajo(Base): __tablename__ = 'M_ordenesTrabajos' idordenesTrabajos = Column(Integer, primary_key=True) fecCreacion = Column(Date) fecModificacion = Column(Date) estado = Column(Integer) descripcion = Column(Text) nombre = Column(String(100)) documento = Column(Text) fechaOrden = Column(Date) numero = Column(Text) ot_padre = Column(Integer) data = Column(JSON)Creo que deberías usar sqlalchemy-filters . Lo estoy usando para la paginación en mi proyecto FastAPI y funciona como se esperaba. Mi código para la paginación se ve así:
# pagination num_of_pages = 0 total_results = 0 if skip and limit: results, pagination = apply_pagination( results, page_number=skip, page_size=limit ) num_of_pages = pagination.num_pages total_results = pagination.total_results