我正在阅读某人的代码,并且有书面内容
get_object_or_404(Order, id=-1)
有人可以解释的目的id=-1
吗?
好get_object_or_404
[Django-doc]将模型或查询集作为输入,并旨在使用剩余的位置和命名参数对其进行过滤。然后,它的目的是获取该对象,并在该对象并案件引起404不存在。
因此,这里我们的目标是获得具有的Order
对象id=-1
。因此,在“幕后”执行的查询为:
Order.objects.get(id=-1) # SELECT order.* FROM order WHERE id=-1
但是,在大多数数据库id
中,(严格地)s是正数(如果这些是自动分配的)。因此,除非使用显式保存Order
对象,否则始终会引发404异常。id=-1
但是,有时有时会存储带有负ID的对象,以便于检索和更新“特殊”对象(尽管我个人认为这不是一个好习惯,因为这实际上与单例和全局状态反模式有关)。因此,您可以查看(例如在数据库中或在代码中)是否存在带有负数id
s的对象。如果未创建这些对象,则此代码将始终导致404响应。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句