代码之家  ›  专栏  ›  技术社区  ›  Taras

django请求中写入id=-1意味着什么?

  •  1
  • Taras  · 技术社区  · 6 年前

    get_object_or_404(Order, id=-1)
    

    有人能解释一下 id=-1 ?

    1 回复  |  直到 6 年前
        1
  •  2
  •   willeM_ Van Onsem    6 年前

    get_object_or_404 [Django-doc] 将模型或查询集作为输入,并使用剩余的 参数。然后,它的目标是获取该对象,并在该对象获取时引发404 存在。

    因此,我们的目标是获得 Order 对象 id=-1 . 因此,“幕后”执行的查询是:

    Order.objects.get(id=-1)  # SELECT order.* FROM order WHERE id=-1
    

    在大多数数据库中 id 除非 订单 对象是 保存方式 id=-1 ,这将始终引发404异常。

    然而,有时存储具有负id的对象以便于检索和更新“特殊”对象(尽管我个人认为这不是一个好的做法,因为这实际上与 全局状态 s、 如果没有创建这些对象,则此代码将 结果是404响应。