【发布时间】:2012-03-28 07:39:00
【问题描述】:
我确实有以下数据存储模型:
class One(db.Model):
OneDateAdded = db.DateTimeProperty(auto_now_add=True)
OneTitle= db.StringProperty()
OneLink= db.LinkProperty()
class Two(db.Model):
TwoDateAdded = db.DateTimeProperty(auto_now_add=True)
TwoTitle= db.StringProperty()
TwoLink= db.LinkProperty()
class Three(db.Model):
ThreeDateAdded = db.DateTimeProperty(auto_now_add=True)
ThreeTitle= db.StringProperty()
ThreeisSomething = db.BooleanProperty(default=False)
ThreeLink= db.LinkProperty()
还有一个关系表:
class Relation(db.Model):
RelationDateAdded = db.DateTimeProperty(auto_now_add=True)
RelationOne = db.ReferenceProperty(One)
RelationTwo = db.ReferenceProperty(Two)
RelationThree = db.ReferenceProperty(Three)
当我尝试实现 PagedQuery 库时,我遇到了一个问题,即由于 GAE 限制,我无法使用某种联接。
我不想完成的是对我的关系表的查询RelationThree.ThreeisSomething = True
遍历一组结果似乎不是一个解决方案,因为分页不起作用(得到 10 个结果 2 为真 8 为假,导致页面只有 2 个结果..)
有没有办法做这样简单的事情:(这不起作用)
myPagedQuery = paging.PagedQuery(Release.all().filter('Three.ThreeisSomething =', True), 10)
【问题讨论】:
-
您不能在数据存储中执行此操作。您的选择基本上是去规范化或使用新的云 SQL 服务。
-
我希望有另一个解决方案,但希望得到这个答案。谢谢!!
标签: python google-app-engine google-cloud-datastore