Signup
serializer
from rest_framework import serializers
from apps.User.models import User
class UserSignupSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['username', 'password', 'nickname']
extra_kwargs = {'password': {'write_only': True}}
Service
from apps.User.models import User
def create_new_user(validated_data):
user = User.objects.create_user(
username=validated_data['username'],
password=validated_data['password'],
nickname=validated_data.get('nickname', '')
)
return user
view
class UserSignupView(APIView):
@extend_schema(
tags=["회원관리"],
summary="회원가입",
request=UserSignupSerializer,
)
def post(self, request):
serializer = UserSignupSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = SignupService.create_new_user(serializer.validated_data)
return Response(
{
"message": "회원가입이 성공적으로 완료되었습니다.",
"user": {"id": user.id, "username": user.username, "nickname": user.nickname},
},
status=status.HTTP_201_CREATED,
)
결과 확인


