3
是否可以在Django中实现'expando'模型,就像Google App Engine一样?我在github上发现了一个名为django-expando的django应用程序,但它仍处于早期阶段。Django中的Expando模型
是否可以在Django中实现'expando'模型,就像Google App Engine一样?我在github上发现了一个名为django-expando的django应用程序,但它仍处于早期阶段。Django中的Expando模型
这是可能的,但它会是一个史诗比例的混合物。 GAE使用被称为基于列的数据库的不同数据库设计,并且Django ORM被设计为与关系数据库链接。由于技术上GAE中的所有内容都存储在一个没有模式的非常大的表格中(这就是为什么GAE应用程序不需要使用syncdb
),添加任意字段非常简单。对于关系数据库来说,每个表只能存储一种数据(通常是)并且具有固定的模式,所以任意字段并不那么容易。你可以实现这个
一个可能方式是创建expando属性存储表名,对象ID和腌制数据的文本字段一个新的模式或表,然后都为Expando模型从子类继承这会覆盖__setattr__
和__getattr__
方法,该方法将自动在此表中创建一个新行。但是,这里有几个主要问题:
我的建议是找到一种方法来设计您的数据库结构,以便您不需要expando模型。
谢谢:) 我只是在探索expando模型。我认为应用程序引擎补丁或appengine-helper对我来说是完美的。 – koko 2010-02-03 19:40:43