У меня есть простое приложение для блога с моделью «Пост». Если я удалю все записи в модели Post, я получаю сообщение об ошибке, когда пытаюсь сослаться на первый элемент в списке сообщений, упорядоченном по дате, что я и сделал:
latest_post = Post.objects.order_by('-date_created')[0]
Ошибка: IndexError: индекс списка вне допустимого диапазона
В качестве исправления я теперь получаю такой элемент:
all_posts = Post.objects.order_by('-date_created')
latest_post = ()
if (all_posts):
latest_post = all_posts[0]
Это работает, если в моей модели "Post" нет элементов и не выдается исключение. Однако мне кажется, что это слишком много кода, чтобы сделать что-то довольно простое. Я предполагаю, что есть лучший способ сделать это с помощью django QuerySet API, но ничего не могу найти в документации.
Любые идеи?
РЕДАКТИРОВАТЬ: Как ни странно, это не вызывает ошибки, когда в модели Post нет элементов:
latest_post_list = Post.objects.all().order_by('-date_created')[1:10]