我有一个搜索表单,其中包含四个字段,分别为最低价格,最高价格,尺寸和颜色,我正在尝试使搜索结果取决于所选过滤器,这是我的代码,也是无效查询:
@main_route.route('/q', methods=['GET'])
def advanced_search():
if request.method == 'GET':
get_price = request.args.get('price')
get_sizes = request.args.getlist('sizes')
min_price = request.args.get('min_price')
max_price = request.args.get('max_price')
get_colors = request.args.getlist('color')
page = request.args.get('page', 1, type=int)
if session['valute'] == 'ruble':
product_colors = Colors.query.filter(Colors.word.in_(get_colors)).all()
pagination = Goods.query.filter(
Goods.is_available == True,
Goods.sizes.in_(get_sizes),
Goods.colors_list.in_(product_colors.color),
Goods.price_ruble.between(
float(min_price) * float(g.currency_ruble.ruble),
float(max_price) * float(g.currency_ruble.ruble)
)
).paginate(
page,
per_page=current_app.config['CATALOG_PRODUCTS'],
error_out=False
)
products = pagination.items
通过该查询,我没有任何错误但没有结果,我希望该查询在出现任何匹配的情况下为我提供所有产品。检查每个参数是否存在于request.args
中并根据该参数构建针对该特定参数的查询,并不是一个好主意!
请提出任何建议,使它正常工作?