gpt4 book ai didi

django - 获取切片后无法更新查询

转载 作者:行者123 更新时间:2023-12-03 11:44:10 26 4
gpt4 key购买 nike

我正在尝试这样做:

UserLog.objects.filter(user=user).filter(action='message').filter(timestamp__lt=now)[0:5].update(read=True)

但我收到此错误:
Cannot update a query once a slice has been taken.

(使用 django 1.2.1)

我究竟做错了什么?

最佳答案

documentation suggests可能会出现以下情况 - 我不确定是否在内部 QuerySet 中进行限制绕过调用 update() 的检查切片后:

inner_q = UserLog.objects.filter(user=user,
action='message',
timestamp__lt=now).values('pk')[0:5]
UserLog.objects.filter(pk__in=inner_q).update(read=True)

否则,您可以使用 in field lookup像这样:
ids = UserLog.objects.filter(user=user,
action='message',
timestamp__lt=now).values_list('pk', flat=True)[0:5]
UserLog.objects.filter(pk__in=list(ids)).update(read=True)

关于django - 获取切片后无法更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4285420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com