from django.http import JsonResponse from django.shortcuts import get_object_or_404 from django.views import generic from django.views.decorators.http import require_http_methods from helpers import get_page_list, ajax_required from .forms import CommentForm from .models import Video, Classification class IndexView(generic.ListView): model = Video template_name = 'video/index.html' context_object_name = 'video_list' paginate_by = 12 c = None def get_context_data(self, *, object_list=None, **kwargs): context = super(IndexView, self).get_context_data(**kwargs) paginator = context.get('paginator') page = context.get('page_obj') page_list = get_page_list(paginator, page) classification_list = Classification.objects.filter(status=True).values() context['c'] = self.c context['classification_list'] = classification_list context['page_list'] = page_list return context def get_queryset(self): self.c = self.request.GET.get("c", None) if self.c: classification = get_object_or_404(Classification, pk=self.c) return classification.video_set.all().order_by('-create_time') else: return Video.objects.filter(status=0).order_by('-create_time') class SearchListView(generic.ListView): model = Video template_name = 'video/search.html' context_object_name = 'video_list' paginate_by = 8 q = '' def get_queryset(self): self.q = self.request.GET.get("q", "") return Video.objects.filter(title__contains=self.q).filter(status=0) def get_context_data(self, *, object_list=None, **kwargs): context = super(SearchListView, self).get_context_data(**kwargs) paginator = context.get('paginator') page = context.get('page_obj') page_list = get_page_list(paginator, page) context['page_list'] = page_list context['q'] = self.q return context