frequentaddress.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from django.db.models import CharField
  2. from django.db.models.functions import Cast
  3. from rest_framework import viewsets, permissions
  4. from rest_framework.response import Response
  5. from webservice_running.models import Frequentaddress
  6. from webservice_running.serializer import FrequentaddressSerializer
  7. class FrequentaddressMVS(viewsets.ModelViewSet):
  8. queryset = Frequentaddress.objects.all()
  9. serializer_class = FrequentaddressSerializer
  10. permission_classes = [permissions.IsAuthenticated]
  11. def list(self, request, *args, **kwargs):
  12. client_id = self.request.query_params.get('client_id')
  13. queryset = Frequentaddress.objects.all()
  14. if client_id is not None:
  15. queryset = queryset.annotate(client_id_int=Cast('client_id', output_field=CharField())).filter(
  16. client_id_int=client_id)
  17. serializer = self.get_serializer(queryset, many=True)
  18. return Response(serializer.data)
  19. def delete(self, request, *args, **kwargs):
  20. client_id = self.request.query_params.get('client_id')
  21. queryset = Frequentaddress.objects.all()
  22. if not client_id:
  23. return Response({'error': 'client_id parameter is required'}, status=status.HTTP_400_BAD_REQUEST)
  24. queryset = queryset.annotate(client_id_int=Cast('client_id', output_field=CharField())).filter(
  25. client_id_int=client_id)
  26. queryset.delete()
  27. return Response({'message': f'Objects with client_id {client_id} were deleted'},
  28. status=status.HTTP_204_NO_CONTENT)