Google App Engine中的ListProperty与StringListProperty

3 投票
1 回答
988 浏览
提问于 2025-04-16 10:36

我想存储一些整数的列表(用户ID),我应该把它们变成字符串,使用StringListProperty,还是直接用ListProperty呢?我在想哪种方式更优化,是专门的StringListProperty好,还是只用整数的混合ListProperty好。

我需要不断往这个列表里添加用户,直到达到一定的数量,然后我会为这些用户创建一个组实例(在一个单独的实体组里)。

1 个回答

10

StringListProperty其实就是一个很简单的包装,主要是用来处理列表类型的属性。除了元素的类型不同,其他没有什么实质性的区别。

来自代码本身

class StringListProperty(ListProperty):
  def __init__(self, verbose_name=None, default=None, **kwds):
    super(StringListProperty, self).__init__(basestring,
                                             verbose_name=verbose_name,
                                             default=default,
                                             **kwds)

我建议把整数存储在普通的ListProperty里,这样在数据库查询时,你可以正确地进行查询和排序,也就是按数字的大小来排序。如果把它们转换成字符串,就不容易做到这一点了。

撰写回答