django как получить 0-й элемент из, возможно, пустого списка

У меня есть простое приложение для блога с моделью "Сообщение". Если я удалю все записи в модели 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]
8
задан BoomShaka 18 July 2011 в 11:10
поделиться