如何用django数据库列中的其他值替换特定值?

时间:2016-08-02 12:59:30

标签: django

我有一个表“Subscriber”,其中一列名称为Status。

我想替换“status”列的值。其中status = 1和3将其更改为4.换句话说,所有'1和3'状态转换为4。

我该怎么做才能解决这个问题。

2 个答案:

答案 0 :(得分:2)

使用Q object获取OR条件。其余部分是一个简单的更新调用

Subscriber.objects.filter(Q(status=1)|Q(status=3)).update(status=4)
  

关键字参数查询 - 在filter()等中 - 与“AND”编辑在一起。   如果您需要执行更复杂的查询(例如,查询带有   OR语句),你可以使用Q对象。

请在此处阅读更新文档:https://docs.djangoproject.com/en/1.9/ref/models/querysets/#update

答案 1 :(得分:2)

@ e4c5的解决方案非常好,但我尝试为复杂查询保留Q个对象,在这种情况下,我可能只使用__in过滤器:Subscriber.objects.filter(status__in=[1, 3]).update(status=4)