Frasco SQLAlchemy error de paginación

Tengo este código y el método all() y todos los demás métodos funcionan en esto y he BaseQuery todo y pude que el método paginate() funcione en BaseQuery que también es Query

 @app.route('/') @app.route('/index') @app.route('/blog') @app.route('/index/') def index(page = 1): posts = db.session.query(models.Post).paginate(page, RESULTS_PER_PAGE, False) return render_template('index.html', title="Home", posts=posts) 

pero esto me da el error AttributeError: 'Query' object has no attribute 'paginate' . He buscado en todas partes y no puedo encontrar ninguna solución para esto.

De tu pregunta …

 that the method paginate() works on BaseQuery which is also Query 

Creo que aquí es donde estás confundido. “Consulta” se refiere al objeto de Query SQLAlchemy. “BaseQuery” se refiere al objeto BaseQuery -SQLALchemy BaseQuery , que es una subclase de Query . Esta subclase incluye ayudantes como first_or_404() y paginate() . Sin embargo, esto significa que un objeto de Query NO tiene la función paginate() . La forma en que construya realmente el objeto al que llama su objeto “Consulta” depende de si está tratando con un objeto Query o BaseQuery .

En este código, está obteniendo el objeto de Query SQLAlchemy, que produce un error:

 db.session.query(models.Post).paginate(...) 

Si usa el siguiente código, obtiene la paginación que está buscando, porque está tratando con un objeto BaseQuery (de Flask-SQLAlchemy) en lugar de un objeto Query (de SQLAlchemy).

 models.Post.query.paginate(...)