Django 1.4.2 では、公式ドキュメントにあるような単純なページネーション コードを使用します。
...
paginator = Paginator(songs, 25) # Show 25 songs per page
page = request.GET.get('page')
try:
songs = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
songs = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
songs = paginator.page(paginator.num_pages)
...
そのビューを実行すると、「'Manager' object is unsubscriptable」というエラーが表示されsongs = paginator.page(1)
ます。エラーを検索しましたが、それに関する解決策が見つかりませんでした。何が問題ですか?
編集:
songs
django モデル オブジェクト リストです。完全なビュー コードは次のようになります。
def index(request):
songs = Song.objects
#filter params
q_name = request.GET.get('name', None)
if q_name:
songs = songs.filter(name__contains=q_name)
q_composer = request.GET.get('composer', None)
if q_composer:
songs = songs.filter(composer__name__contains=q_composer)
q_composer_id = request.GET.get('composer_id', '')
if q_composer_id != '':
songs = songs.filter(composer__id=q_composer_id)
paginator = Paginator(songs, 25) # Show 25 contacts per page
page = request.GET.get('page')
try:
songs = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
songs = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
songs = paginator.page(paginator.num_pages)
return render(request, 'index.html', {'songs': songs})