gpt4 book ai didi

python - 有没有办法检查字符串是否是 django 查询集的有效过滤器?

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:58 24 4
gpt4 key购买 nike

我正在尝试添加一些功能,让用户能够通过 URL get 参数在 Django 中过滤分页查询集,并且已经成功运行:

for f in self.request.GET.getlist('f'):
try:
k,v = f.split(':', 1)
queryset = queryset.filter(**{k:v})
except:
pass

但是,我希望以一种不使用 try/except block 的方式来实现。 Django 中是否有标准方法来检查字符串是否是有效的过滤器参数?

例如:

my_str = "bad_string_not_in_database"
if some_queryset.is_valid_filter_string(my_str):
some_queryset.filter(**{my_str:100})

最佳答案

您可以从查看字段名称开始:

qs.model._meta.get_all_field_names()

您可能还想使用扩展,例如 field__icontainsfield__gte 等。因此需要做更多的工作。

免责声明:try/except 是更好的方法。我不知道你为什么要取消这种方法。

关于python - 有没有办法检查字符串是否是 django 查询集的有效过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986829/

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