У меня есть простое приложение для блога с моделью "Сообщение". Если я удалю все записи в модели 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, но ничего не могу найти в документации.
Есть идеи?
РЕДАКТИРОВАТЬ: Как ни странно, это не вызывает ошибки, если в списке нет элементов Модель сообщения:
latest_post_list = Post.objects.all().order_by('-date_created')[1:10]