python - Python、Django:原始 sql 查询的替代方案
问题描述
晚上好,
我想问一下,原始sql查询是否有不同的方法来按我的views.py中的某个条件更新项目?例如,我知道我可以执行这样的插入查询:
模型.py
class Person(models.Model):
name = models.CharField()
age = models.IntegerField()
value = models.IntegerField()
视图.py
def something(request):
...
qs = Person(name="John Doe", age=34, value=10)
qs.save()
...
如果符合特定条件,是否有类似的方法可以更新所有“人员”?
...
qs = Person("UPDATE Person SET value=5 WHERE age < 30") # or something like this
qs.save()
...
感谢您的所有帮助和建议,祝大家周末愉快!
解决方案
您可以使用.update(…)
[Django-doc]更新对应表的记录,并使用.filter(…)
[Django-doc]指定要更新的项目。
因此,您可以过滤:
Person.objects.filter(age__lt=30).update(value=5)
这里我们使用__lt
查找 [Django-doc]来指定年龄应该小于30。
推荐阅读
- java - How return a generic array of
> in Java? - python - 为什么我在 Django 中的测试函数在 chrome 浏览器中正确显示页面时返回状态代码 404?
- wpf - wpf - 将自动生成的列数据网格绑定到值的属性
- algorithm - minimum greater number with different adjacent digits
- amazon-web-services - AWS IAM 全局条件键 aws:PrincipalOrgPaths 引发访问被拒绝
- python - 处理修改文件后提交更改
- mysql - Simple column change query doesn' work in MySQL 5.7
- amcharts - amchart条形图中类别轴标签的限制宽度
- javascript - dialog.showMessageBox not returning button index in electron main.js
- javascript - 如何使用 javascript 从 div 获取信息到另一个 div