Added some logic

This commit is contained in:
maciejrusek
2026-03-12 23:24:14 +01:00
parent ca605ac59d
commit 8b55be1b9c
48 changed files with 240 additions and 7 deletions

View File

@@ -0,0 +1,37 @@
from django.contrib.auth.password_validation import validate_password as django_validate_password
from django.core.exceptions import ValidationError
from rest_framework import serializers
from apps.user.models import User
class RegisterSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ["username", "email", "password"]
extra_kwargs = {
"password": {"write_only": True}
}
def validate_email(self, value):
if User.objects.filter(email=value).exists():
raise serializers.ValidationError("Email already taken")
return value
def validate_password(self, value):
try:
django_validate_password(value)
except ValidationError as error:
raise serializers.ValidationError(error.messages)
return value
def create(self, validated_data):
user = User.objects.create_user(
validated_data["username"],
validated_data["email"],
validated_data["password"]
)
return user