Python 如何建立一对多模型?
我有两个实体,物品和城市。我如何像一对多关系那样建模,以便它表示一个项目可以“拥有”多个城市?我想用ReferenceProperty来做,但它似乎是一个列表,并且没有键列表的属性。你能告诉我应该如何建模以表示这种关系吗 创建新对象时,如果要创建具有集合referenceproperty的新对象,则可以创建类似于一对多的对象:Python 如何建立一对多模型?,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我有两个实体,物品和城市。我如何像一对多关系那样建模,以便它表示一个项目可以“拥有”多个城市?我想用ReferenceProperty来做,但它似乎是一个列表,并且没有键列表的属性。你能告诉我应该如何建模以表示这种关系吗 创建新对象时,如果要创建具有集合referenceproperty的新对象,则可以创建类似于一对多的对象: class ItemLocation(db.Model): reference = db.ReferenceProperty(Item,
class ItemLocation(db.Model):
reference = db.ReferenceProperty(Item,
collection_name='matched_cities', verbose_name='Cities')
但这并不是我想要的。我想要一个方便的模型,在那里我可以为给定的项目迭代城市,即
{%for item.matched_cities%}
你能告诉我怎么做吗
谢谢你你绝对可以拥有一份钥匙清单。将其添加到您的项目模型:
cities = db.ListProperty(db.Key)
然后,您可以使用从数据存储中检索这些城市
itemsCities = ItemLocation.get(item.cities)
这听起来确实像是一个多对多的关系,因为你说一个项目可以有几个城市,但我猜一个城市也可以有很多项目?