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.
晚上好,
我想问一下,是否有与原始 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.