数据存储中的一对多关系以及Google App Engine中的解引用

4 python google-app-engine

我在两个实体之间有一对多的关系:第一个是卫星,第二个是通道.卫星表单返回一个卫星名称,我想在另一个HTML页面中显示该名称,其中包含频道数据,您可以说该频道与该卫星相关.

我怎样才能做到这一点?

fue*_*sjr 6

这听起来像是使用作为App Engine数据存储API一部分的ReferenceProperty的好例子.这是一个让你入门的想法:

class Satellite(db.Model):
  name = db.StringProperty()

class Channel(db.Model):
  satellite = db.ReferenceProperty(Satellite, collection_name='channels')
  freq = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)

有了这个你可以像这样分配渠道:

my_sat = Satellite(name='SatCOM1')
my_sat.put()
Channel(satellite=my_sat,freq='28.1200Hz').put()
... #Add other channels ...
Run Code Online (Sandbox Code Playgroud)

然后遍历给定Satellite对象的通道:

for chan in my_sat.channels: 
  print 'Channel frequency: %s' % (chan.freq)
Run Code Online (Sandbox Code Playgroud)

无论如何,这几乎是在本文之后,它描述了如何在App Engine中建模实体关系.希望这可以帮助.