Python、Django:替代原始-sql-查询

Python, Django: Alternative to a raw-sql-query

晚上好,

我想问一下,是否有与原始 sql 查询不同的方法来根据我的 views.py 中的特定条件更新项目?例如,我知道我可以像这样执行插入查询:

models.py

class Person(models.Model):
    name = models.CharField()
    age = models.IntegerField()
    value = models.IntegerField()

views.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] to update records of the corresponding table, and use .filter(…) [Django-doc] 指定要更新的 个项目。

因此您可以过滤:

Person.objects.filter(<b>age__lt=30</b>).update(<b>value=5</b>)

这里我们利用__lt lookup [Django-doc]来指定年龄应该小于30.