import datetime from django.shortcuts import render # Create your views here. from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.views import APIView from .models import Progress, PivotProgressVertex from .serializers import PivotProgressSerializer class UpdateProgress(APIView): renderer_classes = (JSONRenderer,) @staticmethod def post(request): """ На вход обязательно передаётся параметр id (id узла). """ token = request.JSON.get('token', None) course = request.JSON.get('slug', None) if token is None or course is None: return Response('Не передан слаг курса или токен урока', status=400) try: p = Progress.objects.get(user=request.user, course=course) try: pv = PivotProgressVertex.objects.get( progress=p, vertex=token, ) except PivotProgressVertex.DoesNotExist: pv = PivotProgressVertex.objects.create( date=datetime.datetime.now(), teacher=p.teacher, progress=p, vertex=token, ) pv.status = 2 pv.save() return Response(PivotProgressSerializer(pv).data, status=200) except Progress.DoesNotExist: return Response('Не найден прогресс по заданным параметрам', status=404)