タグに従って動画を一覧表示する ListView を使用しています。フィルタリングは get_queryset() で行われます。タグに動画が含まれていない場合、ユーザーを別のページにリダイレクトしたいと思います。
関数があれば簡単です。クエリを実行し、クエリセットを確認して、リダイレクトします。クラスでは、そうするのに失敗します:
class VideosView(generic.ListView):
def get_queryset(self):
"""
This work.
"""
tag = self.kwargs.get('tag', None)
self.videos = Video.on_site.all()
if tag:
self.videos = Video.tagged.with_all(tag, self.videos)
return self.videos
def get(self, request, *args, **kwargs):
"""
This doesn't work because self.videos doesn't exist yet.
"""
if not self.videos:
return redirect('other_page')
return super(Videos, self).get(request, *args, **kwargs)