gpt4 book ai didi

python - SQLAlchemy 动态过滤不同的列?

转载 作者:行者123 更新时间:2023-12-01 09:17:34 26 4
gpt4 key购买 nike

我有一个下拉列表,用户可以在其中选择不同的社会经济状态,但是,雕像是单独的 bool 列,如何根据选择不同的列动态构建查询?

例如,如果我有一个名为 SamPublicData 的模型,并且列 woman_ownedveteran_owned 类型为 boolean (Postgres )。

假设我有一个下拉选择框,其中包含“女性拥有”、“退伍军人拥有”:现在在 flask 中我有:

socio = request.form['socio']
if socio == 'Woman Owned':
SamPublicData.query.filter(SamePublicData.woman_owned.is_(True))
elif socio == 'Veteran Owned':
SamPublicData.query.filter(SamePublicData.veteran_owned.is_(True))

这看起来效率不高,有没有办法动态选择过滤列?

最佳答案

我所做的一件事是使用内置的 getattr。你可以尝试这样的事情:

# map the string to the attribute name
def map_to_column_name(s):
return '_'.join(s.lower().split(' '))

socio = request.form['socio']

SamPublicData.query.filter(getattr(SamePublicData, map_to_column_name(socio)).is_(True))

关于python - SQLAlchemy 动态过滤不同的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com