我想为我的应用实现某种标记功能。我想做点什么...
class Item(db.Model):
name = db.StringProperty()
tags = db.ListProperty(str)
假设我的搜索包含2个或更多标签。例如。 “餐厅”和“墨西哥”。
现在,我希望获得包含ALL的项目,在本例中为2,给定标记。
我该怎么做?或者有更好的方法来实现我想要的东西吗?
答案 0 :(得分:0)
我相信您希望将标记存储为'db.ListProperty(db.Category)',然后使用以下内容查询它们:
return db.Query(Item)\
.filter('tags = ', expected_tag1)\
.filter('tags = ', expected_tag2)\
.order('name')\
.fetch(256)
(不幸的是我找不到db.Category类型的任何好文档。所以我不能明确地说这是正确的方法。)另请注意,为了创建db.Category,您需要使用:
new_item.tags.append(db.Category(unicode(new_tag_text)))
答案 1 :(得分:0)
使用db.ListProperty(db.Key)代替,它存储实体键的列表。
模型:
class Profile(db.Model):
data_list=db.ListProperty(db.Key)
class Data(db.Model):
name=db.StringProperty()
的观点:
prof=Profile()
data=Data.gql("")#The Data entities you want to fetch
for data in data:
prof.data_list.append(data)
///这里data_list存储数据实体的密钥
Data.get(prof.data_list)将获取其密钥位于data_list属性中的所有数据实体