mirror of
https://github.com/andwati/store-api.git
synced 2026-10-18 17:32:51 +00:00
33 lines
1.1 KiB
Python
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"]
|