카테고리 없음
Django 간단한 회원가입
rlarudals
2024. 11. 20. 16:07
간단한 회원가입
models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class User(AbstractUser):
created_at = models.DateTimeField(auto_now_add=True) # 생성 시각 자동 기록
updated_at = models.DateTimeField(auto_now=True) # 수정 시각 자동 갱신
def __str__(self):
return self.username
serializers.py
from rest_framework import serializers
from .models import User
# 회원가입
class SignupSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
# 필요한 필드만 포함시키려면
# fields = ['id', 'username', 'email', 'created_at', 'updated_at']
# 특정 필드를 제외시키려면
# exclude = ['field 명']
views.py
from django.shortcuts import render
from django.contrib.auth import get_user_model
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated, AllowAny
from .serializers import SignupSerializer
User = get_user_model() # 필수 지우면 안됨
# 회원가입
class SignupAPIView(APIView):
permission_classes = [AllowAny]
def post(self, request):
serializer = SignupSerializer(data=request.data) # 요청 데이터
if serializer.is_valid():
user = serializer.save()
# serializer.save() # 데이터 저장
return Response({"message": f"{user.username} 회원가입이 완료되셨습니다!"}, status=status.HTTP_201_CREATED)
return Response({"message" : "회원가입에 실패하셨습니다"}, status=status.HTTP_400_BAD_REQUEST)
urls.py
from django.urls import path
from . import views
from .views import (
SignupAPIView,
)
app_name = 'tests'
urlpatterns = [
path("signup/", SignupAPIView.as_view(), name="signup"), # 회원가입
]
postman 에서 실행

다시 회원가입 하면
