GAE ReferenceProperty 类型查询

GAE在提供ReferenceProperty这个类型提供了很多好处,相当于SQL中的参照性约束。今天让我头疼的是我想要把某一类ReferenceProperty属性的数据检索出来,却检索不出结果,导致我在这上面大费周章,话了三四个小时的时间来试验。
ReferenceProperty中存储的是db.Key()类型的一个字符串,但是它并不是字符串,如果使用如下的方式:

valueofkey=self.request.get("keyoflinks")
query = Posts.all()
query.filter('post_type =', valueofkey)

虽然在使用检索语句的时候GQL不会报错,但是也并不会得到任何的结果。问题出在的地方就是需要将valueofkey这个字符串类型转换为db.Key()类型,这样便可以进行正常的比对了。个人认为这与GQL的内部处理机制有关,是内部过滤不严的bug。

valueofkey=self.request.get("keyoflinks")
query = Posts.all()
query.filter('post_type =', db.Key(valueofkey))

总之这样就解决问题了。
-EOF-

发表评论

电子邮件地址不会被公开。 必填项已用*标注