我将GoogleAppEngine与他们的webapp框架一起使用。webapp中有没有类似Django的ForeigKey之类的?即我有一个模型,我希望它有一个指向另一个模型的属性/字段。可能吗? 最佳答案 有一个db.ReferenceProperty.使用它时需要注意两件事:自动取消引用(这是另一个数据存储RPC调用)和被引用的实体不需要存在(因此您需要手动检查它)。使用db.ReferenceProperty时,请确保使用Appstats以避免连续获取实体。尼克约翰逊有一个article这解释了如何预取引用的实体。
如果我有“a.py”fromgoogle.appengine.extimportdbclassA(db.Model):db.ReferenceProperty(b.B)...otherstuff和另一个文件“b.py”fromgoogle.appengine.extimportdbclassB(db.Model):db.ReferenceProperty(a.A)...otherstuff看来Python根本不允许循环依赖。通常我猜你会改变代码,这样这两个类实际上可以在不直接相互导入的情况下自行解析。也许通过第三方中介来巩固他们对彼此的引用?但是我不能只使用普通的中间类,因为所有类最终
我可以在AppEngine领域使用一些帮助...使用[Python]API,我从文档中创建如下示例的关系:classAuthor(db.Model):name=db.StringProperty()classStory(db.Model):author=db.ReferenceProperty(Author)story=db.get(story_key)author_name=story.author.name据我了解,该示例将进行两个数据存储区查询。一个用于获取故事,然后一个用于尊重作者以访问名称。但我希望能够获取id,所以执行以下操作:story=db.get(story_key)
我可以在AppEngine领域使用一些帮助...使用[Python]API,我从文档中创建如下示例的关系:classAuthor(db.Model):name=db.StringProperty()classStory(db.Model):author=db.ReferenceProperty(Author)story=db.get(story_key)author_name=story.author.name据我了解,该示例将进行两个数据存储区查询。一个用于获取故事,然后一个用于尊重作者以访问名称。但我希望能够获取id,所以执行以下操作:story=db.get(story_key)
ReferenceProperty在处理两个模块之间的引用方面非常有帮助。狐狸例子:classUserProf(db.Model):name=db.StringProperty(required=True)classTeam(db.Model):manager_name=db.ReferenceProperty(UserProf,collection_name='teams')name=db.StringProperty(required=True)要使用团队实例获取“manager_name”,我们使用team_ins.manager_name。为了获得由特定用户实例管理的“团队”,