我正在构建AppEngine模型类。我需要一个简单的元组列表:

class MyTuple(object):
  field1 = "string"
  field2 = 3

class MyModel(db.Model):
  the_list = db.ListProperty(MyTuple)


这不起作用,因为AppEngine不接受MyTuple作为有效字段。

我能想到的解决方案:


使MyTuple扩展db.Model。但这是否意味着列表中的每个条目都将存储在专用的MyTuple表中?
使其成为字符串列表,这是MyTuple的“序列化”形式;添加解析(反序列化)代码。 uck
维护两个列表(一个字符串,一个整数)。另一个。


我还缺少其他解决方案吗?

最佳答案

在app-engine-patch中,有一个FakeModelListProperty和FakeModel(均从ragendja.dbutils导入)。从FakeModel派生MyTuple并设置字段=('field1','field2')。这些字段在存储在列表中时将自动转换为JSON,因此您可以在文本区域中手动对其进行编辑。当然,这仅适用于基本类型(字符串,整数等)。如果这还不够,请查看源。

http://code.google.com/p/app-engine-patch/

07-28 03:41