【问题标题】:Case-insensitive order_by on GAE using django non-rel使用 django non-rel 在 GAE 上不区分大小写的 order_by
【发布时间】:2011-04-30 21:02:40
【问题描述】:

使用 google app engine 和 Django non-rel,我正在查询电影列表并希望按字母顺序排序。

movies = Movie.objects.all().order_by("title")

问题在于任何不以大写字符开头的标题不遵循相同的排序模式。

因此,如果查询这些电影并将它们排序返回,那么“iRobot”就不会出现在蝙蝠侠和 Zoolander 之间:

  1. 世界末日
  2. 蝙蝠侠
  3. Zoolander
  4. iRobot

如何让他们执行不区分大小写的 order_by?

谢谢

【问题讨论】:

    标签: google-app-engine google-cloud-datastore sql-order-by django-nonrel


    【解决方案1】:

    您需要去规范化:存储一个包含小写版本标题的单独属性,然后对其进行排序。

    【讨论】:

    • 非规范化是 80% 的“我如何在 GAE 数据存储上做 X”问题的答案。
    • 不是我希望的解决方案,但感谢您的回答
    • 也许不是,但它是any DBMS 中唯一可索引的解决方案。 :)
    【解决方案2】:

    也许您可以使用计算属性来返回您的属性的小写版本?

    https://developers.google.com/appengine/docs/python/ndb/properties#computed

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-26
      • 2014-11-07
      • 1970-01-01
      • 2017-03-17
      • 2014-08-08
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多