1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from django.db.models import CharField
- from django.db.models.functions import Cast
- from rest_framework import viewsets, permissions
- from rest_framework.response import Response
- from webservice_running.models import Frequentaddress
- from webservice_running.serializer import FrequentaddressSerializer
- class FrequentaddressMVS(viewsets.ModelViewSet):
- queryset = Frequentaddress.objects.all()
- serializer_class = FrequentaddressSerializer
- permission_classes = [
- permissions.IsAuthenticated
- ]
- def list(self, request, *args, **kwargs):
- client = self.request.query_params.get('client')
- queryset = Frequentaddress.objects.all()
- if client is not None:
- queryset = queryset \
- .annotate(client_int=Cast('client', output_field=CharField())) \
- .filter(client_int=client)
- serializer = self.get_serializer(queryset, many=True)
- return Response(serializer.data)
- def delete(self, request, *args, **kwargs):
- client = self.request.query_params.get('client')
- queryset = Frequentaddress.objects.all()
- if not client:
- return Response(
- {'error': 'client parameter is required'},
- status=status.HTTP_400_BAD_REQUEST
- )
- queryset = queryset \
- .annotate(client_int=Cast('client', output_field=CharField())) \
- .filter(client_int=client)
- queryset.delete()
- return Response(
- {'message': f'Objects with client {client} were deleted'},
- status=status.HTTP_204_NO_CONTENT
- )
|