Accessing the course contents
You need a view for displaying the courses that students are enrolled on, 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().get_queryset()
return qs.filter(students__in=[self.request.user])
This is the view to see courses that students are enrolled on. 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. You override the get_queryset()
method to retrieve only the courses that a student is enrolled on; you filter the QuerySet by the student's ManyToManyField
...