【发布时间】:2010-11-30 16:53:17
【问题描述】:
这是对my previous question的跟进。
我使用 ReferenceProperty 设置模型:
class User(db.Model):
userEmail = db.StringProperty()
class Comment(db.Model):
user = db.ReferenceProperty(User, collection_name="comments")
comment = db.StringProperty(multiline=True)
class Venue(db.Model):
user = db.ReferenceProperty(User, collection_name="venues")
venue = db.StringProperty()
在数据存储中,我在用户下有这个条目:
Entity Kind: User
Entity Key: ag1oZWxsby0xLXdvcmxkcgoLEgRVc2VyGBUM
ID: 21
userEmail: az@example.com
在场地下:
Entity Kind: Venue
Entity Key: ag1oZWxsby0xLXdvcmxkcgsLEgVWZW51ZRhVDA
ID: 85
venue (string): 5 star venue
user (Key): ag1oZWxsby0xLXdvcmxkcgoLEgRVc2VyGBUM
User: id=21
我正在尝试像这样在hw.py 中显示该项目
query = User.all()
results = query.fetch(10)
self.response.out.write("<html><body><ol>")
for result in results:
self.response.out.write("<li>")
self.response.out.write(result.userEmail)
self.response.out.write(result.venues)
self.response.out.write("</li>")
self.response.out.write("</ol></body></html>")
这条线有效:
self.response.out.write(result.userEmail)
但这行不行:
self.response.out.write(result.venues)
但per vonPetrushev's answer result.venues 应该获取与此userEmail 关联的venue。
对不起,如果这令人困惑:我只是想访问与ReferenceProperty 链接到userEmail 的表。链接的表是Venue 和Comment。如何访问Venue 或Comment 中的项目?谢谢。
【问题讨论】:
标签: python google-app-engine google-cloud-datastore referenceproperty