Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pedidos/urls:
- from django.urls import path, include
- from . import views
- from rest_framework import routers
- router = routers.DefaultRouter()
- router.register('usuarios', views.UsuarioViewSet)
- router.register('tecnicos', views.TecnicoViewSet)
- router.register('pedidos', views.PedidoViewSet)
- router.register('mispedidos', views.PedidoMiUsuarioSet)
- router.register('registrar', views.Registrar, base_name = 'registro')
- router.register('login', views.LoginView, base_name = 'login')
- router.register('logout', views.LogoutView, base_name = 'logout')
- urlpatterns = [
- path('', include(router.urls))
- ]
- views.py:
- class LoginView(mixins.CreateModelMixin, viewsets.GenericViewSet):
- serializer_class = LoginSerializer
- def post(self, request):
- serializer = LoginSerializer(data=request.data)
- serializer.is_valid(raise_exception=True)
- user = serializer.validated_data["user"]
- django_login(request, user)
- token, created = Token.objects.get_or_create(user=user)
- return Response({"token": token.key}, status=200)
- class LoginSerializer(serializers.Serializer):
- username = serializers.CharField()
- email = serializers.CharField()
- password = serializers.CharField()
- def validate(self, data):
- username = data.get("username", "")
- email = data.get("email", "")
- password = data.get("password", "")
- print(password)
- print(email)
- if username and password:
- user = authenticate(username=username, password=password)
- if user:
- if user.is_active:
- data["user"] = user
- else:
- msg = "Usuario desactivado"
- raise exceptions.ValidationError(msg)
- else:
- msg = "Imposible loguear con los parametros dados"
- raise exceptions.ValidationError(msg)
- else:
- msg = "Se necesita el username y password"
- raise exceptions.ValidationError(msg)
- return data
Add Comment
Please, Sign In to add comment