このメソッドはビューページにあります。それは正常に動作し、すべてが正しく表示されますが、汎用リストビューに変換して、ページネーションを適用することができます。ここでビューメソッドを汎用リストビューに変換するにはどうすればよいですか?
機能は次のとおりです。 `
#views.py
def index(request):
all_artists = Artist.objects.all()
all_songs = Song.objects.all()
all_albums = Album.objects.all()
return render(request, 'index.html', {'all_albums':all_albums,'all_songs':all_songs, 'all_artists':all_artists})
は、だから私はいくつかのチュートリアルに続き、これで終わった:私はページをレンダリングするときには、エラーなしでコンパイルされますが
#new views.py
class IndexView(ListView):
template_name = 'index.html'
context_object_name = 'home_list'
queryset = Artist.objects.all()
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
context['all_artists']=Artist.objects.all()
context['all_songs']=Song.objects.all()
context['all_albums']=Album.objects.all()
、コンテキストオブジェクトはレンダリングされません。 お手数をおかけしております。 ありがとう
EDIT(13-APR-17): ありがとうございます!それは最終的にいくつかの小さな変更を加えて機能しました。
class IndexView(generic.ListView):
template_name = 'index.html'
context_object_name = 'home_list'
queryset = Artist.objects.all()
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
context['all_artists']=Artist.objects.all()
context['all_songs']=Song.objects.all()
context['all_albums']=Album.objects.all()
return context
enter code here
enter code here
する必要はありません改ページを使用するために汎用ビューに変換する。関数ベースのビューで確実にページネーションを使用できます。しかし、どういうふうにあなたは改ページしていますか?そこには3つの独立したクエリーセットがあります。 –