切片后无法更新查询

编程入门 行业动态 更新时间:2024-10-27 09:35:59
本文介绍了切片后无法更新查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试这样做:

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)

(using django 1.2.1)

我在做什么错了?

推荐答案

由于错误状态,您无法调用 update()在QuerySet上,如果您取出了一个切片。

As the error states, you cannot call update() on a QuerySet if you took out a slice.

原因:

  • 进行切片相当于SQL中的 LIMIT 语句。
  • 发出更新会将查询转变为 UPDATE 语句。
  • Taking a slice is equivalent to a LIMIT statement in SQL.
  • Issuing an update turns your query into an UPDATE statement.
  • 您要执行的操作等同于

    更新...位置...限制5

    这是不可能的,至少在标准SQL中是不可能的。

    which is not possible, at least not with standard SQL.

    更多推荐

    切片后无法更新查询

    本文发布于:2023-10-24 03:01:08,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1522748.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:切片

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!