gpt4 book ai didi

python - django请求中写入id=-1是什么意思?

转载 作者:行者123 更新时间:2023-12-01 01:37:38 25 4
gpt4 key购买 nike

我正在读某人的代码,上面写着

get_object_or_404(Order, id=-1)

有人可以解释一下id=-1的用途吗?

最佳答案

好吧get_object_or_404 [Django-doc]将模型或查询集作为输入,并旨在使用剩余的位置命名参数对其进行过滤。然后,它的目标是获取该对象,并在该对象存在的情况下引发 404。

这里我们的目标是获取 id=-1Order 对象。因此,“在幕后”执行的查询是:

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

在大多数数据库中,id 是(严格)正数(如果这些是自动分配的)。因此,除非Order对象显式使用id=-1保存,否则总会引发 404 异常。

然而,有时人们会存储具有负 ID 的对象,以便于检索和更新“特殊”对象(尽管我个人认为这不是一个好的做法,因为这实际上与单例相关)和全局状态反模式)。因此,您可以查看(例如在数据库或代码中)是否存在带有负 id 的对象。如果未创建这些对象,则此代码将始终导致 404 响应。

关于python - django请求中写入id=-1是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52242954/

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