【发布时间】:2011-02-01 12:28:38
【问题描述】:
我编写了一个应用程序,其中一部分是使用 URL 解析器以 ReST 类型的方式获取某些数据。因此,如果您将 /foo/bar 作为路径,它将找到所有 bar 项目,如果您将 /foo 放入,它将返回 foo 下的所有项目
所以我的应用有一个类似的查询
data = Paths.all().filter('path =', self.request.path).get()
效果非常好。现在我想使用模板将其发送到 UI
{% 数据中的数据 %}
{{ datum.title }}
{{ 数据. 内容 }} </div>
{% endfor %}
当我这样做时,我得到 data is not iterable 错误。所以我将 Django 更新为{% for datum in data.all %},现在它似乎提取的数据比我提供的数据多。它显示了数据存储中不理想的所有数据。所以我从 Django 中删除了 .all 并将数据存储区查询更改为
data = Paths.all().filter('path =', self.request.path).fetch(1)
现在可以按我的预期工作。在文档中它说
db.get() 函数获取一个 来自数据存储区的实体的键 (或键列表)。
所以我的问题是为什么我可以在查询返回时迭代 fetch() 而不能使用 get()。我的理解哪里出了问题?
【问题讨论】:
标签: python google-app-engine google-cloud-datastore