AppEngine中的非数据存储区类型列表?

时间:2009-05-17 08:11:06

标签: python google-app-engine orm

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

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

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

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

我能想到的解决方案:

  1. Make MyTuple扩展db.Model。但这不意味着列表中的每个条目都将存储在专用的MyTuple表中吗?

  2. 将其设为字符串列表,这是MyTuple的“序列化”形式;添加解析(反序列化)代码。呸。

  3. 维护两个列表(一个字符串,一个整数)。另一个人。

  4. 我缺少的任何其他解决方案?

1 个答案:

答案 0 :(得分:1)

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

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