Spaces:
Configuration error
Configuration error
File size: 1,417 Bytes
52a3fd6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
from django.contrib.auth.models import User
from rest_framework import serializers
from django.contrib.auth import authenticate
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
def create(self, validated_data):
user = User.objects.create_user(
username=validated_data['username'],
password=validated_data['password']
)
return user
class Meta:
model = User
fields = ('id', 'username', 'password')
class LoginSerializer(serializers.Serializer):
username = serializers.CharField(max_length=150)
password = serializers.CharField(max_length=128, write_only=True)
def validate(self, data):
username = data.get('username')
password = data.get('password')
print(username,password)
if username and password:
user = authenticate(username=username, password=password)
print("user",user)
if user:
if user.is_active:
data['user'] = user
else:
raise serializers.ValidationError("User is not active.")
else:
raise serializers.ValidationError("Unable to log in with the provided credentials.")
else:
raise serializers.ValidationError("Must include 'username' and 'password'.")
return data |