1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from django.shortcuts import get_object_or_404
- from rest_framework import status
- from rest_framework.decorators import permission_classes
- from rest_framework.decorators import action
- from rest_framework.response import Response
- from pycs_api.models import Project
- from pycs_api.models import File
- from pycs_api.serializers import ProjectSerializer
- from pycs_api.serializers import FileSerializer
- from pycs_api.views.base import BaseViewSet
- class ProjectViewSet(BaseViewSet):
- serializer_class = ProjectSerializer
- def get_queryset(self):
- return self.request.user.projects
- def perform_create(self, serializer):
- serializer.save(user=self.request.user)
- @action(detail=True, methods=['post'])
- def file(self, request, pk=None):
- if "file" not in request.FILES:
- return Response({"status": "File missing"},
- status=status.HTTP_400_BAD_REQUEST)
- project = self.get_object()
- try:
- file = File.create(request.FILES['file'], project)
- except Exception as e:
- print(e)
- return Response({
- "status": str(e)},
- status=status.HTTP_400_BAD_REQUEST)
- else:
- return Response({
- 'status': 'File uploaded',
- 'file_id': file.id})
- @action(detail=True)
- def files(self, request, pk=None):
- project = self.get_object()
- files = project.files
- serializer = FileSerializer(files, many=True)
- return Response(serializer.data)
|