You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.0 KiB
65 lines
2.0 KiB
6 months ago
|
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
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|