django - 使用多个变量过滤 Django 查询集
问题描述
我想传递一个或多个GET
变量来过滤查询集。我尝试使用以下代码创建变量字典并应用过滤器,但使用两个变量进行测试似乎只过滤最终的字典变量。
for k,v in mydict.items():
qs = mymodel.objects.filter(**{"%s__contains" % k: v})
谁能指出我在哪里出错的正确方向?
解决方案
您正在从头开始在每次迭代中创建一个新的查询集,而不是链接它们。尝试将您的代码更改为:
qs = mymodel.objects.all()
for k, v in mydict.items():
qs = qs.filter(**{"%s__contains" % k: v})
推荐阅读
- controls - Petri 网和有限状态机有什么区别?
- vue.js - 如果找不到完整的关键路径,我可以让 VueI18n 在关键路径上回退吗?
- r - 使用R中的四对(1,2),(3,4),(5,6),(7,8)中的三对组合6个数字
- python - python函数的泰勒级数sympy表达式
- css - 如何以不同的屏幕分辨率在我的网站上自动定位我的按钮?
- android - 根据条件禁用 Espresso IdlingResource
- python - 在 pyCharm 中安装 Pandas 时出现错误 Microsoft Visual C++ 10.0
- python - Python 用户验证
- python - 保存 9GB 数据帧时出现 Pickle 内存错误
- c# - 如何在 Azure API 函数中返回变量并通过移动应用程序中的 InvokeApiAsync 函数读取它