日付ベースの一般的なビューのページ付けを取得するために、Django1.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]
コメントで述べたのとほぼ同じエラーが発生します。スライスが取得されると、クエリを並べ替えることができません。