Accessing the course contents
We need a view for displaying the courses the students are enrolled in, and a view for accessing the actual course contents. Edit the views.py
file of the students
application and add the following code to it:
from django.views.generic.list import ListView from courses.models import Course class StudentCourseListView(LoginRequiredMixin, ListView): model = Course template_name = 'students/course/list.html' def get_queryset(self): qs = super(StudentCourseListView, self).get_queryset() return qs.filter(students__in=[self.request.user])
This is the view for students to list the courses they are enrolled in. It inherits from LoginRequiredMixin
to make sure that only logged in users can access the view. It also inherits from the generic ListView
for displaying a list of Course
objects. We override the get_queryset()
method for retrieving only the courses the user is enrolled in; we filter the QuerySet by the student's ManyToManyField
field...