Я перешел на Django 1.3, чтобы получить нумерацию страниц для моих общих представлений на основе даты. Это отлично работает, однако есть страница, на которой я хочу указать определенное количество элементов, но не хочу, чтобы она разбивалась на страницы. Например, вернуть первые 5 записей новостей.
В 1.2 у нас было num_latest, которое мы могли поместить в наш информационный словарь, чтобы получить последние элементы. Кажется, этого не существует с новыми универсальными представлениями на основе классов.
Я мог бы установить для paginate_by значение 5 и просто не использовать ссылки на страницы в шаблоне, но тогда люди все равно смогут видеть старые записи, вбивая URL-адрес вручную (чего я не хочу). Кроме того, я не хочу, чтобы Django настраивал нумерацию страниц, которую я не собираюсь использовать.
Изменить: это строка urlconf, которую я сейчас использую:
url(r'^$',
ArchiveIndexView.as_view(
model = Entry,
context_object_name = 'entry_list',
template_name = 'news/news.html',
date_field = 'published',
), name = 'archive_index'
),
Дальнейшее редактирование: Попытка переопределить get_dated_queryset Я использовал этот фрагмент кода в сочетании с urlconf, как указано выше, но с новым представлением под названием:
class MainIndex(ArchiveIndexView):
def get_dated_queryset(self):
return Entry.objects.all()[:2]
Я получаю почти ту же ошибку, что и в комментариях: невозможно изменить порядок запроса после того, как фрагмент был взят.