/
MyxaXYZ
/
TestBackend
Обзор
Документация
Войти
/
MyxaXYZ
/
TestBackend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
forms/views.py
45 строк
2 KB
Maxim Sidorenko
first_commit
23 мар 2025, 17:10
23 мар 2025, 17:10
171cccc
Код
Авторство
О чём код?
from rest_framework import viewsets from rest_framework.permissions import IsAuthenticated from .models import Form, FormResponse from .serializers import FormSerializer, ResponseSerializer from rest_framework.response import Response from rest_framework.decorators import action class FormViewSet(viewsets.ModelViewSet): queryset = Form.objects.all() serializer_class = FormSerializer permission_classes = [IsAuthenticated] def get_queryset(self): return Form.objects.filter(owner=self.request.user) def perform_create(self, serializer): serializer.save(owner=self.request.user) @action(detail=True, methods=['POST'], permission_classes=permission_classes) def create_response(self, request, pk=None): form = self.get_object() data = request.data.copy() data['user'] = request.user.id data['form'] = form.id serializer = ResponseSerializer(data=data) if serializer.is_valid(): serializer.save() return Response(serializer.data) @action(detail=True, methods=['GET'], permission_classes=permission_classes) def get_responses_by_form(self, request, pk=None): responses = FormResponse.objects.filter(form=pk) serializer = ResponseSerializer(responses, many=True) return Response(serializer.data) class ResponseViewSet(viewsets.ModelViewSet): queryset = FormResponse.objects.all() serializer_class = ResponseSerializer permission_classes = [IsAuthenticated] def get_queryset(self): return FormResponse.objects.filter(user=self.request.user)