【发布时间】:2010-10-25 12:13:40
【问题描述】:
我正在 Google App Engine 中开发一个 django-nonrel 应用程序。
我正在尝试以随机顺序从数据库中返回项目。所以我的 Items 模型中可能有 100 个项目。我希望返回随机选择的 20 个项目。
我尝试过使用:
Items.objects.order_by('?')[:20]除了我收到以下错误:
后端不支持随机排序我认为这是 django-nonrel 在 GAE 上的限制?
我可以在 GAE 上为 django-nonrel 使用另一种方法来获得相同的效果吗?
【问题讨论】:
-
在 SO 和应用引擎邮件列表中有几个关于此的问题。基本上,您有几个选择:1)添加一个随机字段,然后查询一些随机生成的值周围的实体; 2)尝试构建您的密钥,以便您可以随机获取其中一些。
-
谢谢罗伯特。最后,由于无论如何我都必须返回所有对象的列表,所以我复制了该列表并使用 random.shuffle() 来打乱列表顺序。然后将所需的数字返回给视图。在发现 shuffle() 命令之前,我尝试了您的一种方法,但 shuffle 似乎最简单。再次感谢
标签: google-app-engine sql-order-by django-nonrel