SQLAlchemy如何在过滤器上使用OR

时间:2017-09-26 01:07:02

标签: python sqlalchemy

我正在尝试在此查询中使用OR:

User.query.filter(or_(username==data['username'], email==data['email'])).first()

但是,我收到了这条消息:

  

全局名称'or_'未定义

我正在使用SqlAlchemy 0.9.7(它已包含or_

之前有人遇到此问题和/或知道如何修复它?

1 个答案:

答案 0 :(得分:1)

很可能你没有导入必要的模块

def show_category(request, category_slug):
    category = get_object_or_404(Category, slug=category_slug)
    subcategories = Category.objects.filter(parent_id=category.id)
    products = ProductFilter(request.GET, queryset=Product.objects.filter(categories=category).annotate(starting_price=Min('variant__price')))
    breadcrumbs = Category.get_parents(category.id)
    return render(request, 'catalog/category.html', {'category' : category, 'subcategories' : subcategories, 'breadcrumbs' : breadcrumbs, 'products' : products})

另外,我不确定此运算符是否可以与过滤器一起使用。但试试这种方法。

  

使用Python |也可以使用or_()连接operator(虽然请注意复合表达式需要括起来以便使用Python运算符优先级行为):

from sqlalchemy import or_