我正在尝试从模型 A 中获取随机对象
目前,它与这段代码配合得很好:
random_idx = random.randint(0, A.objects.count() - 1)
random_object = A.objects.all()[random_idx]
但我觉得这段代码更好:
random_object = A.objects.order_by('?')[0]
哪一个是最好的?使用第一个代码删除对象可能有问题?因为,例如,我可以有 10 个对象,但是 ID 为 10 的对象已经不存在了?我是否误解了 A.objects.all()[random_idx] 中的某些内容?
原文由 Erwan 发布,翻译遵循 CC BY-SA 4.0 许可协议
刚刚一直在看这个该行:
据报道,它已经关闭了许多服务器。
不幸的是,Erwans 代码在访问非顺序 ID 时导致错误。
还有另一种简短的方法可以做到这一点:
这样做的好处是它可以毫无错误地处理非顺序 ID。