【问题标题】:django-nonrel google app engine order_by('?')django-nonrel 谷歌应用引擎 order_by('?')
【发布时间】: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


【解决方案1】:

我已经设法找到解决方法。

我只是使用 python 的 random.shuffle(LIST_ITEM) 作为这样做的一种方式。

最后其实很简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    相关资源
    最近更新 更多