Какова рекомендуемая идиома для проверки того, возвращал ли запрос какие-либо результаты?
Пример:Проверка пустого запроса в Django
orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc')
# If any results
# Do this with the results without querying again.
# Else, do something else...
Я предполагаю, что есть несколько различных способов проверить это, но я хотел бы знать, как опытный пользователь Django бы сделать это. Большинство примеров в документации просто игнорируют тот случай, когда не было найдено ничего ...
Этот представляется предпочтительным и в документации, например: https: // docs.djangoproject.com/en/1.8/topics/http/shortcuts/#id7 – Wtower
@Wtower Код, на который вы ссылаетесь, имеет контракт, чтобы поднять 404, если выражение фильтрации не попало ни в какие записи или для создания «списка» результата, если есть записи. Код будет попадать в базу данных только один раз. Если они использовали 'exist()' или 'count()' для того, чтобы сначала проверить, будут ли возвращены записи, они дважды бьют базу данных (один раз, чтобы проверить, один раз, чтобы получить записи). Это конкретная ситуация. Это не связано с тем, что в * общем случае * предпочтительный метод, чтобы узнать, будет ли запрос возвращать записи, следует использовать do 'if queryset: ...' – Louis
@Louis код, на который я ссылаюсь, является только примером, который он содержит строка 'if not my_objects:', чтобы продемонстрировать, что так они делают это в документах. Все остальное совершенно не имеет значения, поэтому я не понимаю. Они могли бы также сделать тысячу запросов, и это все равно было бы совершенно неактуальным, поскольку это не вопрос этого ответа, с которым я четко заявляю, что согласен. – Wtower