From 534d9e142799f555bdf16e786d01020e4a049075 Mon Sep 17 00:00:00 2001 From: Alex Boiko Date: Wed, 29 Mar 2017 17:54:27 +0300 Subject: [PATCH] fix(issue#412): Fixes issue #412 - AttributeError at /api/v0/courses/111/responses/ and /api/v0/courses/111/errors/ Added get_object_or_404 from rest_framework.generics --- mysite/api/v0/views.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mysite/api/v0/views.py b/mysite/api/v0/views.py index 907c0ef5..cda1ae7b 100644 --- a/mysite/api/v0/views.py +++ b/mysite/api/v0/views.py @@ -1,5 +1,6 @@ from rest_framework import viewsets from rest_framework.authentication import SessionAuthentication +from rest_framework.generics import get_object_or_404 from ..serializers import ResponseSerializer, ErrorSerializer from ..permissions import IsInstructor @@ -15,9 +16,11 @@ class ResponseViewSet(viewsets.mixins.ListModelMixin, viewsets.GenericViewSet): queryset = Response.objects.filter(kind='orct', unitLesson__order__isnull=False) serializer_class = ResponseSerializer + def get_queryset(self): + course = get_object_or_404(Course, id=self.kwargs.get('course_id')) self.check_object_permissions( - self.request, Course.objects.filter(id=self.kwargs.get('course_id')).first() + self.request, course ) queryset = super(ResponseViewSet, self).get_queryset() return queryset.filter(course__id=self.kwargs.get('course_id')) @@ -33,8 +36,9 @@ class ErrorViewSet(viewsets.mixins.ListModelMixin, viewsets.GenericViewSet): serializer_class = ErrorSerializer def get_queryset(self): + course = get_object_or_404(Course, id=self.kwargs.get('course_id')) self.check_object_permissions( - self.request, Course.objects.filter(id=self.kwargs.get('course_id')).first() + self.request, course ) queryset = super(ErrorViewSet, self).get_queryset() return queryset.filter(response__course__id=self.kwargs.get('course_id'))