Displaying the catalog of courses
You might be eager to get to rendering and caching but there are a few items we must set up before we can do that. Let’s start with the course catalog. For your course catalog, you have to build the following functionalities:
- List all available courses, optionally filtered by subject
- Display a single course overview
This will allow students to see all the courses available on the platform and enroll in those they are interested in. Edit the views.py
file of the courses
application and add the following code:
from django.db.models import Count
from .models import Subject
class CourseListView(TemplateResponseMixin, View):
model = Course
template_name = 'courses/course/list.html'
def get(self, request, subject=None):
subjects = Subject.objects.annotate(
total_courses=Count('courses')
)
courses = Course.objects.annotate(
total_modules=Count...