Add, user modify
All checks were successful
Build And Test / build-and-push (push) Successful in 2m49s

This commit is contained in:
2025-05-17 22:53:58 +09:00
parent 0cf02ba89c
commit 45d88b299d
6 changed files with 34 additions and 5 deletions

View File

@ -6,7 +6,7 @@ from rest_framework_simplejwt.tokens import RefreshToken
class CustomUserAdmin(UserAdmin):
model = CustomUser
list_display = ('email', 'name', 'grade', 'is_active', 'is_staff', 'jwt_preview')
list_display = ('email', 'name', 'grade', 'desc', 'is_active', 'is_staff', 'jwt_preview')
list_filter = ('grade', 'is_active', 'is_staff')
search_fields = ('email', 'name')
ordering = ('email',)
@ -15,7 +15,7 @@ class CustomUserAdmin(UserAdmin):
fieldsets = (
(None, {'fields': ('email', 'password')}),
('Personal Info', {'fields': ('name', 'grade')}),
('Personal Info', {'fields': ('name', 'grade', 'desc')}),
('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
('Important dates', {'fields': ('last_login', 'created_at')}),
('JWT Token Preview', {'fields': ('jwt_preview',)}), # ✅ 별도 섹션으로 추가
@ -25,7 +25,8 @@ class CustomUserAdmin(UserAdmin):
(None, {
'classes': ('wide',),
'fields': (
'email', 'name', 'grade', 'password1', 'password2',
'email', 'name', 'grade', 'desc',
'password1', 'password2',
'is_active', 'is_staff', 'is_superuser'
),
}),

View File

@ -0,0 +1,18 @@
# Generated by Django 4.2.14 on 2025-05-17 13:04
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('users', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='customuser',
name='desc',
field=models.TextField(blank=True, null=True, verbose_name='설명'),
),
]

View File

@ -35,6 +35,8 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(unique=True)
name = models.CharField(max_length=255)
grade = models.CharField(max_length=20, choices=GRADE_CHOICES, default='user')
desc = models.TextField(blank=True, null=True, verbose_name="설명")
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)

View File

@ -7,7 +7,7 @@ class RegisterSerializer(serializers.ModelSerializer):
class Meta:
model = CustomUser
fields = ('email', 'name', 'password', 'grade')
fields = ('email', 'name', 'password', 'grade', 'desc')
def create(self, validated_data):
password = validated_data.pop('password')

View File

@ -21,6 +21,14 @@ class MeView(APIView):
user = request.user
serializer = RegisterSerializer(user)
return Response(serializer.data)
def put(self, request):
user = request.user
serializer = RegisterSerializer(user, data=request.data, partial=True) # ✅ 부분 수정 허용
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class CustomTokenObtainPairView(TokenObtainPairView):
serializer_class = CustomTokenObtainPairSerializer

View File

@ -1 +1 @@
0.0.5
0.0.6