Google App Engine的关系表和分页?

时间:2012-03-11 19:10:55

标签: python google-app-engine google-cloud-datastore

我有以下数据存储模型:

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)

1 个答案:

答案 0 :(得分:0)

您可以使用limitoffset记录的here。但要小心,使用它们可能会很昂贵 - 设置偏移量为100,限制为10实际上会加载110条记录,并为您提供最后10条记录。