flask:基于多过滤器查询的搜索不起作用

时间:2018-06-26 12:30:27

标签: flask flask-sqlalchemy

我有一个搜索表单,其中包含四个字段,分别为最低价格最高价格尺寸颜色,我正在尝试使搜索结果取决于所选过滤器,这是我的代码,也是无效查询:

@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中并根据该参数构建针对该特定参数的查询,并不是一个好主意!

请提出任何建议,使它正常工作?

0 个答案:

没有答案