from rest_framework import viewsets from rest_framework.response import Response from rest_framework.decorators import action from django_filters.rest_framework import DjangoFilterBackend from rest_framework.filters import OrderingFilter from rest_framework import status from api import models, serializers import logging class OperadorViewSet(viewsets.ModelViewSet): # queryset = models.Operador.objects.all() serializer_class = serializers.OperadorSerializer filter_backends = [DjangoFilterBackend, OrderingFilter] filterset_fields = ['id_region', 'nombre_operador', 'vigente', 'id_operador', 'roloperador__id_rol'] ordering_fields = '__all__' def get_queryset(self): login = self.request.jwt_info['login'] usuario = models.Usuario.objects.filter(login=login).first() if usuario.superuser: return models.Operador.objects.all() else: return models.Operador.objects.filter(roloperador__id_rol=usuario.id_rol.id_rol) def create(self, request, *args, **kwargs): # Comprueba si 'id_operador' está presente en la petición y no está vacío id_operador = request.data.get('id_operador') if not id_operador: # Si 'id_operador' no está presente o está vacío, retorna un error 400 return Response( {"error": "No se puede crear el operador: 'id_operador' no proporcionado."}, status=status.HTTP_400_BAD_REQUEST ) # Si 'id_operador' está presente, procede con la creación normal return super().create(request, *args, **kwargs)