Files
store-api/authentication/serializers.py
T

33 lines
1.1 KiB
Python

from django.contrib.auth.models import User
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(max_length=65, min_length=8, write_only=True)
email = serializers.EmailField(max_length=255)
first_name = serializers.CharField(max_length=255)
last_name = serializers.CharField(max_length=255)
class Meta:
model = User
fields = ["username", "first_name", "last_name", "email", "password"]
def validate(self, attrs):
email = attrs.get("email", "")
if User.objects.filter(email=email).exists():
raise serializers.ValidationError({"error": "Email is already in use"})
return super().validate(attrs)
def create(self, validated_data):
return User.objects.create_user(**validated_data)
class LoginSerializer(serializers.ModelSerializer):
password = serializers.CharField(max_length=65)
username = serializers.CharField(max_length=255)
class Meta:
model = User
fields = ["username", "password"]