Rafe Kaplan在数据存储here中有一对很好的关系。我试图将其适用于更简单的User
和Venue
的情况。所以用户可以去许多餐馆;我要打印的用户电子邮件和餐馆的用户去:数据存储中的一对多关系
class User(db.Model):
userEmail = db.StringProperty()
class Venue(db.Model):
user = db.ReferenceProperty(User,
collection_name="venues")
venue = db.StringProperty()
class OneToMany(webapp.RequestHandler):
def get(self):
scott = User(userEmail="[email protected]")
scott.put()
Venue(user=scott,
venue="club1").put()
Venue(user=scott,
venue="club2").put()
for v in scott.venues:
self.response.out.write(v.venue)
这将打印"club1 club2"
但我想"[email protected]"
与他去的地方相关联;所以我想打印是这样的:"[email protected]: club1, club2"
试图
for v in scott.venues:
self.response.out.write(userEmail)
self.response.out.write(v.venue)
给出了错误:
self.response.out.write(userEmail)
NameError: global name 'userEmail' is not defined
什么是这样做的正确方法是什么?谢谢!
EDIT2(RE:答案通过vonPetrushev)
这似乎工作:
query = User.all()
query.filter("userEmail =", "[email protected]")
results=query.fetch(1)
scott=results[0]
self.response.out.write("%s went to:" % scott.userEmail)
for venue in scott.venues:
self.response.out.write(venue.venue)
显示:
[email protected] went to:club1club22
编辑(RE:答案通过vonPetrushev )
我有点困惑。
所以我想写这样
query = User.all()
query.filter("userEmail =", "[email protected]")
查询并显示与该用户相关联的所有场馆。
目前还不清楚User
和Venue
是如何连接的。
感谢这项工作和打印:`[email protected] club1 s[email protected] club22`我添加了一个`EDIT`,因为我不懂如何查询用户并获取所有场地。 – Zeynel 2010-11-27 18:51:16