django запрос получить последние n записей

Допустим, что я реализую stream сообщений, записывает сортировку по ID по возрастанию, каждый запрос на выборку, я хочу разрешить только получение самых последних 10 записей.

Я пытался:

Messages.objects.filter(since=since)[:-10] 

И у меня была ошибка: отрицательное индексирование не поддерживается.

Моя текущая работа – это сортировка по убыванию, а затем запуск:

 Messages.objects.filter(since=since)[:10] 

Но это требует, чтобы передняя часть снова изменила порядок.

Мой вопрос в том, есть ли элегантный способ сделать это?

Вы можете передать запрос на отмену :

 last_ten = Messages.objects.filter(since=since).order_by('-id')[:10] last_ten_in_ascending_order = reversed(last_ten) 

Или используйте [::-1] вместо reversed :

 last_ten = Messages.objects.filter(since=since).order_by('-id')[:10][::-1] 

Если вы хотите, чтобы последние X-записи отсортировались в порядке убывания по id , Тогда я не думаю, что вам нужно, так как фильтр

 last_ten = Messages.objects.all().order_by('-id')[:10] 

Использование -id будет сортироваться в порядке убывания. Надеюсь, это было полезно!

  • Путаница в администраторах Django, статических и медиафайлах
  • Django: Как перенаправить сообщение и передать данные сообщения
  • Django - Почему я вообще должен использовать render_to_response?
  • Альтернатива устаревшему setup_environ () для одноразовых скриптов django?
  • Недопустимый заголовок HTTP_HOST в Django's SuspiciousOperation
  • Django admin DoNotExist at / admin /
  • Django TemplateDoesNotExist?
  • регистрировать все запросы sql
  • Менеджер недоступен; Пользователь был заменен на «pet.Person»
  • Разница между методами Django filter () и get ()
  • Django - Соединение отказано
  • Interesting Posts

    Изменение цвета текста элемента меню в навигационном ящике

    Каково обоснование строк с нулевым завершением?

    Как использовать ‘-prune’ вариант ‘find’ в sh?

    Командный скрипт CMD.EXE для отображения последних 10 строк из txt-файла

    Как найти и заменить имя листа в формуле?

    Тип содержимого text / html; charset = UTF-8 ответного сообщения не соответствует типу содержимого привязки (text / xml; charset = utf-8)

    JavaScript: изменение src-атрибута встраиваемого тега

    READ_EXTERNAL_STORAGE разрешение для Android

    Запрос на ссылку HasMany

    Автоматическое обновление Flash Player при запуске Windows

    Агент SSH теряет идентификатор во время перезагрузки машины

    Создание шаблонов электронной почты с помощью Django

    Android: что-то лучше, чем андроид: ellipsize = “end”, чтобы добавить “…” в укороченные длинные строки?

    IIS7: настройка встроенной проверки подлинности Windows, например, в IIS6

    Вы должны использовать тему Theme.AppCompat (или потомок) с этим действием

    Давайте будем гением компьютера.