Как получить доступ к элементу QuerySet по определенному индексу без IndexError? - PullRequest
0 голосов
/ 07 мая 2019

У меня возникают проблемы с извлечением второго по порядку элемента в списке наборов запросов в Django.

Я знаю, что могу отфильтровать его следующим образом:

 QuoteOfTheDay.objects.all().order_by('-id')[1]

, но мне нужнобезопасный способ сделать это так, чтобы, когда он пуст, он не возвращал

IndexError в / list index вне диапазона

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Вы можете использовать блок try-except.

try:

    query_set = QuotesOfTheDay.objects.all().orderby('-id')[-1]
    ** other logic here **

except IndexError:
    print('No Quotes')
0 голосов
/ 07 мая 2019

Вы можете сделать следующее, используя count, чтобы проверить, сколько элементов находится внутри набора запросов

quotes = QuoteOfTheDay.objects.order_by('-id')
second_to_last = None
if quotes.count() > 1:
    second_to_last = quotes[1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...