Django根据当前字段值更新字段

时间:2017-11-16 02:32:26

标签: python django django-models

鉴于架构:

stats {
  id: integer
  total: integer
  total_accepted: integer
  total_rejecged: integer
}

我需要像这样一次更新记录:

UPDATE stats SET total = total + 1, total_accepted = total_accepted + 1 WHERE id=1

那么如何在不使用原始sql的情况下在Django中实现它呢?

1 个答案:

答案 0 :(得分:1)

您需要的是query expressions

因此,使用查询表达式(F()方法),您的查询将如下所示:

Stats.objects.filter(id=1).update(total=F('total') + 1, total_accepted=F('total_accepted') + 1)