1

我有两个实体,Item 和 City。我怎样才能像一对多关系那样建模,以便它表示一个项目可以“拥有”许多城市?我想用 ReferenceProperty 来做,但它似乎是一个列表,并且没有用于键列表的属性 AFAIK。你能告诉我应该如何建模以表示这种关系吗?

在创建新对象时,如果您使用作为集合的引用属性创建新对象,则可以创建一对多:

class ItemLocation(db.Model):   
    reference = db.ReferenceProperty(Item,
            collection_name='matched_cities', verbose_name='Cities')

但这并不是我想要的。我想要一个方便的建模,我可以在其中迭代给定项目的城市,即

{% for city in item.matched_cities %}

你能告诉我该怎么做吗?

谢谢

4

1 回答 1

3

您绝对可以拥有一个键列表。将此添加到您的项目模型中:

cities = db.ListProperty(db.Key)

然后,您可以使用以下命令从数据存储中检索这些城市

itemsCities = ItemLocation.get(item.cities)
于 2012-04-28T11:21:43.767 回答