Guest User

Untitled

a guest
Jun 21st, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. pedidos/urls:
  2. from django.urls import path, include
  3. from . import views
  4. from rest_framework import routers
  5. router = routers.DefaultRouter()
  6. router.register('usuarios', views.UsuarioViewSet)
  7. router.register('tecnicos', views.TecnicoViewSet)
  8. router.register('pedidos', views.PedidoViewSet)
  9. router.register('mispedidos', views.PedidoMiUsuarioSet)
  10. router.register('registrar', views.Registrar, base_name = 'registro')
  11. router.register('login', views.LoginView, base_name = 'login')
  12. router.register('logout', views.LogoutView, base_name = 'logout')
  13.  
  14. urlpatterns = [
  15. path('', include(router.urls))
  16. ]
  17.  
  18. views.py:
  19. class LoginView(mixins.CreateModelMixin, viewsets.GenericViewSet):
  20. serializer_class = LoginSerializer
  21. def post(self, request):
  22. serializer = LoginSerializer(data=request.data)
  23. serializer.is_valid(raise_exception=True)
  24. user = serializer.validated_data["user"]
  25. django_login(request, user)
  26. token, created = Token.objects.get_or_create(user=user)
  27. return Response({"token": token.key}, status=200)
  28.  
  29. class LoginSerializer(serializers.Serializer):
  30. username = serializers.CharField()
  31. email = serializers.CharField()
  32. password = serializers.CharField()
  33.  
  34. def validate(self, data):
  35. username = data.get("username", "")
  36. email = data.get("email", "")
  37. password = data.get("password", "")
  38. print(password)
  39. print(email)
  40. if username and password:
  41. user = authenticate(username=username, password=password)
  42. if user:
  43. if user.is_active:
  44. data["user"] = user
  45. else:
  46. msg = "Usuario desactivado"
  47. raise exceptions.ValidationError(msg)
  48. else:
  49. msg = "Imposible loguear con los parametros dados"
  50. raise exceptions.ValidationError(msg)
  51. else:
  52. msg = "Se necesita el username y password"
  53. raise exceptions.ValidationError(msg)
  54. return data
Add Comment
Please, Sign In to add comment