2013-02-14 55 views
3

如何按ListProperty排序查询*?按ListProperty排序查询(NDB)

型号:

class Chapter(ndb.Model): 
    title = ndb.StringProperty(required=True) 
    version = ndb.IntegerProperty(repeated=True) 

的 '版本' 专卖店值,如:

1.1 -> [1,1] 
1 -> [1] 
2.1.1.1.1 -> [2,1,1,1,1] 
1.2 -> [1,2] 
2.1.2 -> [2,1,2] 

我想订购,如:即时通讯使用NDB所以,的ListProperty

1 
1.1 
1.2 
2.1.1.1.1 
2.1.2 

* = ndb.IntegerProperty(重复= True)

回答

1

OMG我终于做到了。

newChaps = sorted(chaps, key=lambda obj: obj.version) 

这么简单......又那么多时间去找到它...

2

不幸的是,这不是listproperties的工作方式。对于升序查询,使用的值将在列表中最小。 您必须以不同的方式存储值(例如以字符串形式)才能执行所要求的操作。

+0

而我将如何排序与字符串?我已经重写了我的模型很多次,因为这...我只是想知道一种方式 – mFontoura 2013-02-15 17:29:59

+0

版本是一个StringProperty,包含你想要的值 - '1.1','1.2.1.1.1'等 – Greg 2013-02-15 18:05:34

+0

是但我如何分类?我不能只打电话给那种财产.........对吗? – mFontoura 2013-02-15 18:07:58