我有一个表“Subscriber”,其中一列名称为Status。
我想替换“status”列的值。其中status = 1和3将其更改为4.换句话说,所有'1和3'状态转换为4。
我该怎么做才能解决这个问题。
答案 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)