Я записал приложение, и часть его является использованием синтаксический анализатор URL для получения определенных данных способом типа ReST. Таким образом, при помещении/foo/bar как пути, он найдет все объекты панели и если Вы поместите / нечто, то он возвратит все объекты ниже нечто
Таким образом, мое приложение имеет запрос как
data = Paths.all().filter('path =', self.request.path).get()
Который работает блестяще. Теперь я хочу отправить это в шаблоны использования UI
{% для данной величины в % данных}
</div>
{% endfor %}
Когда я делаю это, я добираюсь, данные не являются повторяемой ошибкой. Таким образом, я обновил Django к {% for datum in data.all %}
который теперь, кажется, вытягивает больше данных, чем я давал их так или иначе. Это показывает все данные в хранилище данных, которое не идеально. Таким образом, я удалил .all от Django и изменил запрос хранилища данных на
data = Paths.all().filter('path =', self.request.path).fetch(1)
который теперь работает, как я предназначил. В документации это говорит
db.get () функция выбирает объект от хранилища данных для Ключа (или список Ключей).
Таким образом, мой вопрос состоит в том, почему я могу выполнить итерации по запросу, когда он возвращается с fetch()
но не может с get()
. Где мое понимание пошло не так, как надо?
Вы просматриваете документацию для неправильного get () - вам нужен get () для объекта Query . Вкратце, .fetch () всегда возвращает список, а .get () возвращает первый результат или None, если результатов нет.
get () требует (я думаю), что был ровно один элемент, и возвращает его, тогда как fetch () возвращает список первых элементов n , где n в данном случае оказывается равным 1.