如何对多对多关系进行轻量级查询?
用户有很多列表
ListUser
是链接它们的模型
目前我这样做但是有很多获取查询来获取所有这些数据。
lists = []
for list in user.lists:
lists.append(list.list)
现在我明白了:
list_users = user.lists.fetch(1000)
# problem is here: "list.list" will retrive data from database, but I just want that list's key, how to do?
list_keys = [list.list for list in list_users]
lists = List.get_by_key_name(list_keys)
答案 0 :(得分:0)
您应该使用get_value_for_datastore。
list_keys = [ListUser.list.get_value_for_datastore(list_user)
for list_user in list_users]
lists = db.get(list_keys)
如果您还没有,可能需要查看一些“mastering the datastore”文章。特别是modeling relationships上的那个。也许你可以使用List键列表来完成你需要的东西,也许它会为你节省一个查询。