from
django.shortcuts
import
render
from
django.views.generic.base
import
View
from
pure_pagination
import
Paginator, PageNotAnInteger
from
.models
import
Course
from
django.http
import
HttpResponse,JsonResponse
class
CourseListView(View):
def
get(
self
,request):
all_courses
=
Course.objects.
all
().order_by(
"-add_time"
)
hot_courses
=
Course.objects.
all
().order_by(
"-click_nums"
)[:
3
]
sort
=
request.GET.get(
'sort'
,"")
if
sort:
if
sort
=
=
"hot"
:
all_courses
=
Course.objects.order_by(
"-click_nums"
)
elif
sort
=
=
"students"
:
all_courses
=
Course.objects.order_by(
"-students"
)
try
:
page
=
request.GET.get(
'page'
,
1
)
except
PageNotAnInteger:
page
=
1
p
=
Paginator(all_courses,
3
, request
=
request)
courses
=
p.page(page)
return
render(request,
'course-list.html'
,{
"all_courses"
:courses,
"sort"
:sort,
"hot_courses"
:hot_courses
})
class
CourseDetailView(View):
def
get(
self
,request,course_id):
course
=
Course.objects.get(
id
=
int
(course_id))
course.click_nums
+
=
1
course.save()
return
render(request,
'course-detail.html'
,{
"course"
:course,
})