Advertisement
Guest User

Untitled

a guest
Jul 19th, 2016
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.41 KB | None | 0 0
  1. serializers.py
  2.  
  3. class UserLoginSerializer(ModelSerializer):
  4.     token = CharField(allow_blank=True, read_only=True)
  5.     username = CharField(required=False, allow_blank=True)
  6.     # email = EmailField(label='Email Address',required=False, allow_blank=True)
  7.     remember = BooleanField(default=True, help_text = ("If checked you will stay logged in for 3 weeks"))
  8.     class Meta:
  9.         model = User
  10.         fields = [
  11.             'username',
  12.             # 'email',
  13.             'password',
  14.             'remember',
  15.             'token',
  16.  
  17.         ]
  18.         extra_kwargs = {"password":
  19.                             {"write_only": True}
  20.                             }
  21.  
  22.  
  23. views.py
  24.  
  25. class UserLoginAPIView(APIView):
  26. permission_classes = [AllowAny]
  27. serializer_class = UserLoginSerializer
  28.  
  29. def post(self, request, *args, **kwargs):
  30.     data = request.data
  31.     serializer = UserLoginSerializer(data=data)
  32.     if serializer.is_valid(raise_exception=True):
  33.         print('serializer.data',serializer.data)
  34.         login(request, serializer.data)
  35.         if data.get('remember'):
  36.             request.session.set_expiry(60 * 60 * 24 * 7 * 3)
  37.         else:
  38.             request.session.set_expiry(0)
  39.         return Response({
  40.             'detail': ('Logged in successfully'),
  41.             # TODO: maybe more user info in the request would have sense
  42.             'username': serializer.data.username
  43.         })
  44.     return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
  45.  
  46.  
  47.  
  48.  
  49.  
  50. class UserCreateSerializer(ModelSerializer):
  51.     email = EmailField(label='Email Address')
  52.     email2 = EmailField(label='Confirm Email Address')
  53.     class Meta:
  54.         model = User
  55.         fields = [
  56.             'username',
  57.             'id',
  58.             'password',
  59.             'email',
  60.             'email2',
  61.         ]
  62.         extra_kwargs = {"password":
  63.                             {"write_only": True}
  64.                         }
  65.  
  66.     def create(self, validated_data): #does not shows id when user is created
  67.         print('validated_data',validated_data)
  68.         username = validated_data['username']
  69.         email = validated_data['email']
  70.         email2 = validated_data['email2']
  71.         password = validated_data['password']
  72.         user_obj = User(
  73.                 username=username,
  74.                 email=email
  75.             )
  76.         user_obj.set_password(password)
  77.         user_obj.save()
  78.         return validated_data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement