python - Django 查询集包含
问题描述
我的代码是
queryset = Product.objects.filter(category=2)
for i in queryset:
for j in Windows_system_apps:
if i.name in j:
i.app_type = 1
i.save()
pattern = ["alpha123", "delta1", ... ]
对于产品模型,我必须检查产品名称是否包含模式,其中模式是列表类型。
我的问题是我可以使用 __contains 和 __in 过滤器实现上述逻辑吗?
解决方案
给定name
是 a CharField
,并且Windows_system_apps
是字符串集合的集合,您可以将__in
[Django-doc]用于:
from itertools import chain
Product.objects.filter(category=2, name__in=chain.from_iterable(Windows_system_apps))
如果您想更改app_type
, 并且这app_type
又是一个“原始”数据库字段,您可以在一个查询中执行此操作,例如:
from itertools import chain
Product.objects.filter(
category=2, name__in=chain.from_iterable(Windows_system_apps)
).update(app_type=1)
这将导致类似的问题:
UPDATE product
SET app_type=1
WHERE category=2 AND name IN ("foo", "bar")
和列表"foo"
的假设元素"bar"
。Windows_system_apps
推荐阅读
- docker - 如何安全地将修改应用于 Docker daemon.json 配置文件中的地址池?
- mongodb - 如何建立用户数据的数据库结构?
- python-3.x - 在 tkinter 中循环运行 matplotlib 图像
- tensorflow - TensorFlow 卷积神经网络与训练生成器的拟合误差
- testcontainers - 如何在 Testcontainers MySQL 中配置时区
- html - 通过 maven 运行时未生成 Cucumber HTML 报告
- javascript - 很想从弹出的 iframe 中获取内容?
- python - Python - 读取多个excel文件并打印文件夹中的数据
- reactjs - 如何使用 React 传递多个参数?
- rest - 运行另一个测试用例,循环遍历属性(getValues &SetValues) - Groovy 脚本