python - 如何将 django 查询集中所有对象的字段更改为一个值,但我不想保存它
问题描述
我有两个模型Question
和Choice
.
在这里,我想更改 all 的值choice.vote to 0
。但我不想更新它。
我知道我可以通过调用来更新字段query_set.update(field=value)
。
额外要求:
- 我不想对我的数据库造成任何影响
- 另外,更重要的是,我想避免这种嵌套的 for 循环。
任何帮助将不胜感激。
updated_choice_list = []
for question in Question.objects.filter(some_condition):
for choice in question.choice_set.all():
choice.vote = 0 # I dont want to save the choice vote
updated_choice_list.append(choice)
解决方案
根据您提供的详细信息,应该这样做。
choices = [c for c in Choice.objects.filter(question__some_filter=something).all()]
for c in choices:
c.vote = 0
推荐阅读
- docker - 如何设置 ASP.NET Core MVC 项目以在 docker 容器中运行?
- python - 重构。试图让代码更优雅。需要设计模式
- c# - '无效的列名'OrdProdOrderId'在Where方法调用上
- javascript - 如何在 JSON 文件中的键之后打印数据?
- javascript - 为什么“切换”在比较两个变量时不能正常工作?
- python - 如何修复 pip install 中的语法错误(调用“print”时缺少括号)
- java - Java HMAC 在相同的值上调用时返回不同的 mac
- python - 将参数传递给通过 Windows VM 中的任务调度程序执行的 python 脚本
- java - 获取 fitbit api 用户信息
- android - 记住身份验证