diff --git a/core/urls.py b/core/urls.py index 845578227821504d6eb67111ecf6ea7c33593140..5ebea9ab83243616ce4ac784c2c8b2a7ee2d431a 100644 --- a/core/urls.py +++ b/core/urls.py @@ -12,11 +12,15 @@ router.register(r'student', views.StudentReviewerApiViewSet) router.register(r'examtype', views.ExamApiViewSet) router.register(r'submissiontype', views.SubmissionTypeApiView) router.register(r'tutor', views.TutorApiViewSet) -router.register(r'student-page', views.StudentSelfApiViewSet, - base_name='student_page') + +# regular views that are not viewsets +regular_views_urlpatterns = [ + url(r'student-page', views.StudentSelfApiView.as_view()) +] urlpatterns = [ url(r'^api/', include(router.urls)), + url(r'^api/', include(regular_views_urlpatterns)), url(r'^api-token-auth/', obtain_jwt_token), url(r'^api-token-refresh', refresh_jwt_token), url(r'^$', TemplateView.as_view(template_name='index.html')), diff --git a/core/views.py b/core/views.py index 563331875203a5312d98bbc74e4e5e5afa15ee40..ed932990555d678923b716a80c204fde4ebaf4ce 100644 --- a/core/views.py +++ b/core/views.py @@ -1,7 +1,7 @@ """ All API views that are used to retrieve data from the database. They can be categorized by the permissions they require. All views require a user to be authenticated and most are only accessible by one user group """ -from rest_framework import mixins, viewsets +from rest_framework import mixins, viewsets, generics from core.models import ExamType, Student, SubmissionType, Tutor from core.permissions import IsReviewer, IsStudent @@ -10,10 +10,9 @@ from core.serializers import (ExamSerializer, StudentSerializer, SubmissionTypeSerializer, TutorSerializer) -class StudentSelfApiViewSet(viewsets.ReadOnlyModelViewSet): +class StudentSelfApiView(generics.RetrieveAPIView): """ Gets all data that belongs to one student """ permission_classes = (IsStudent,) - queryset = Student.objects.all() serializer_class = StudentSerializer def get_object(self) -> Student: