Reputation: 150
I am trying to setup pagination for one of my views, but the results are filtered, I am wondering how I could do something like this.
products_product_name = Product.query.filter(Product.product_name.contains(search_name)).paginate(1, 20)
Upvotes: 0
Views: 7711
Reputation: 53
You can do it:
model.query.filter_by(id=1).paginate(page=1, per_page=2)
Upvotes: 5
Reputation: 311
You can add some filtering logic similar to these:
if args["seen"]:
query = query.filter(Product.seen == args["seen"])
if args["starred"]:
query = query.filter(Product.starred == args["starred"])
# Descending sort by the field specified
if args["sort"].startswith("-"):
field = args["sort"].replace("-", "")
sort_by = getattr(Product, field).desc()
else:
sort_by = getattr(Product, args["sort"]).asc()
query = query.order_by(sort_by).paginate(
page=args["page"], per_page=args["per_page"]
Upvotes: 0