Каково различие между .get () и .fetch (1)

Я записал приложение, и часть его является использованием синтаксический анализатор URL для получения определенных данных способом типа ReST. Таким образом, при помещении/foo/bar как пути, он найдет все объекты панели и если Вы поместите / нечто, то он возвратит все объекты ниже нечто

Таким образом, мое приложение имеет запрос как

data = Paths.all().filter('path =', self.request.path).get()

Который работает блестяще. Теперь я хочу отправить это в шаблоны использования UI

{% для данной величины в % данных}

{{datum.title}}

{{datum.content}}
   </div>

{% endfor %}

Когда я делаю это, я добираюсь, данные не являются повторяемой ошибкой. Таким образом, я обновил Django к {% for datum in data.all %} который теперь, кажется, вытягивает больше данных, чем я давал их так или иначе. Это показывает все данные в хранилище данных, которое не идеально. Таким образом, я удалил .all от Django и изменил запрос хранилища данных на

data = Paths.all().filter('path =', self.request.path).fetch(1)

который теперь работает, как я предназначил. В документации это говорит

db.get () функция выбирает объект от хранилища данных для Ключа (или список Ключей).

Таким образом, мой вопрос состоит в том, почему я могу выполнить итерации по запросу, когда он возвращается с fetch() но не может с get(). Где мое понимание пошло не так, как надо?

7
задан David Underhill 21 July 2010 в 21:08
поделиться

2 ответа

Вы просматриваете документацию для неправильного get () - вам нужен get () для объекта Query . Вкратце, .fetch () всегда возвращает список, а .get () возвращает первый результат или None, если результатов нет.

9
ответ дан 7 December 2019 в 01:19
поделиться

get () требует (я думаю), что был ровно один элемент, и возвращает его, тогда как fetch () возвращает список первых элементов n , где n в данном случае оказывается равным 1.

1
ответ дан 7 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: