Django:复制查询集或获取更新的对象以更新它们两次

时间:2018-03-26 23:28:03

标签: django sql-update django-queryset django-orm

我试图更新查询集两次

>>> users = User.objects.filter(source=1)
>>> users
<QuerySet [<User: 'Max'>]>
>>> users.update(source=2)
1

然后我需要再次更新users,但是:

>>> users
<QuerySet []>

那么,这里有哪些选择? 大thx

1 个答案:

答案 0 :(得分:0)

可以先将用户ID分配给列表变量

>>> user_ids = list(User.objects.filter(source=1).values_list('id', flat=True))
>>> user_ids
[1]
>>> users = User.objects.filter(id__in=user_ids)
>>> users.update(source=2)
1
>>> users
<QuerySet [<User: 123>]>