如何根据请求的上下文信息过滤数据库查询?

时间:2017-11-17 12:34:54

标签: python flask sqlalchemy flask-sqlalchemy

鉴于这样的模型:

Product(db.Model):
    __tablename___ = 'product'

    product_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(length=40))
    description = db.Column(db.String(length=8000))
    language = db.Column(db.String(length=2))

这个想法是"产品"每种语言都会创建一次条目,其中语言类似于enfr

我想避免在所有视图函数中按语言强制过滤查询,所以不要这样:

products = Product.query.filter_by(language=request.headers['lang']).filter_by(name='something').all()

我想要这个:

products = Product.query.filter_by(name='something').all()

语言过滤部分自动完成。

我将如何解决这个问题,如何才能最清晰地实现这一目标,而无需重写一个具象的万亿现有查询以成为语言识别?

0 个答案:

没有答案