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

标签 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. 使 MyTuple 扩展 db.Model。但这是否意味着列表中的每个条目都将存储在专用的 MyTuple 表中?

  2. 让它成为一个字符串列表,这是 MyTuple 的“序列化”形式;添加解析(反序列化)代码。呸。

  3. 维护两个列表(一个是字符串,一个是整数)。又见鬼了。

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

最佳答案

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

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

关于python - AppEngine 中的非数据存储类型列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/874122/

相关文章:

ruby - 为我正在开发的 rails ORM gem 创建 railtie 的问题

hibernate - 您如何在 ColdFusion ORM 中深度克隆持久实体?

symfony - 在 Doctrine 2 中更新(从反面)双向多对多关系?

python - python 上的 MySQL 查询中的转义引号

python - pycharm 不显示对象的所有属性和方法

python - 解释这个素数生成器函数,我无法理解[python]

java - Google App Engine 中的非规范化?

python - Pandas 数据框使每个唯一的 ID 号 NAT

python - 应用引擎模板

mysql - 连接超时 : Nodejs Google App Engine to Cloud MySql