Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- serializers.py
- class UserLoginSerializer(ModelSerializer):
- token = CharField(allow_blank=True, read_only=True)
- username = CharField(required=False, allow_blank=True)
- # email = EmailField(label='Email Address',required=False, allow_blank=True)
- remember = BooleanField(default=True, help_text = ("If checked you will stay logged in for 3 weeks"))
- class Meta:
- model = User
- fields = [
- 'username',
- # 'email',
- 'password',
- 'remember',
- 'token',
- ]
- extra_kwargs = {"password":
- {"write_only": True}
- }
- views.py
- class UserLoginAPIView(APIView):
- permission_classes = [AllowAny]
- serializer_class = UserLoginSerializer
- def post(self, request, *args, **kwargs):
- data = request.data
- serializer = UserLoginSerializer(data=data)
- if serializer.is_valid(raise_exception=True):
- print('serializer.data',serializer.data)
- login(request, serializer.data)
- if data.get('remember'):
- request.session.set_expiry(60 * 60 * 24 * 7 * 3)
- else:
- request.session.set_expiry(0)
- return Response({
- 'detail': ('Logged in successfully'),
- # TODO: maybe more user info in the request would have sense
- 'username': serializer.data.username
- })
- return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
- class UserCreateSerializer(ModelSerializer):
- email = EmailField(label='Email Address')
- email2 = EmailField(label='Confirm Email Address')
- class Meta:
- model = User
- fields = [
- 'username',
- 'id',
- 'password',
- 'email',
- 'email2',
- ]
- extra_kwargs = {"password":
- {"write_only": True}
- }
- def create(self, validated_data): #does not shows id when user is created
- print('validated_data',validated_data)
- username = validated_data['username']
- email = validated_data['email']
- email2 = validated_data['email2']
- password = validated_data['password']
- user_obj = User(
- username=username,
- email=email
- )
- user_obj.set_password(password)
- user_obj.save()
- return validated_data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement