Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据存储中的一对多关系和Google App Engine中的反引用_Python_Google App Engine - Fatal编程技术网

Python 数据存储中的一对多关系和Google App Engine中的反引用

Python 数据存储中的一对多关系和Google App Engine中的反引用,python,google-app-engine,Python,Google App Engine,我有两个实体之间的一对多关系:第一个是卫星,第二个是通道。satellite表单返回一个卫星名称,我想在另一个HTML页面中显示该名称,其中包含频道数据,您可以说该频道与该卫星相关 我如何才能做到这一点?这听起来像是一个使用ReferenceProperty的好例子,ReferenceProperty是App Engine数据存储API的一部分。以下是一个让您开始的想法: class Satellite(db.Model): name = db.StringProperty() class

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


我如何才能做到这一点?

这听起来像是一个使用ReferenceProperty的好例子,ReferenceProperty是App Engine数据存储API的一部分。以下是一个让您开始的想法:

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

class Channel(db.Model):
  satellite = db.ReferenceProperty(Satellite, collection_name='channels')
  freq = db.StringProperty()
使用此选项,您可以按如下方式分配频道:

my_sat = Satellite(name='SatCOM1')
my_sat.put()
Channel(satellite=my_sat,freq='28.1200Hz').put()
... #Add other channels ...
然后通过给定卫星对象的通道进行循环:

for chan in my_sat.channels: 
  print 'Channel frequency: %s' % (chan.freq)
无论如何,下面介绍了如何在AppEngine中建模实体关系。希望这有帮助