From b973522477faef8d68f1adced5eb7569f0f562d6 Mon Sep 17 00:00:00 2001 From: icurfer Date: Tue, 13 Jan 2026 02:19:30 +0900 Subject: [PATCH] update --- ..._address_customuser_birth_date_and_more.py | 38 +++++++++++++++++++ users/models.py | 26 ++++++++++++- users/serializers.py | 3 +- 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 users/migrations/0007_customuser_address_customuser_birth_date_and_more.py diff --git a/users/migrations/0007_customuser_address_customuser_birth_date_and_more.py b/users/migrations/0007_customuser_address_customuser_birth_date_and_more.py new file mode 100644 index 0000000..a9a176b --- /dev/null +++ b/users/migrations/0007_customuser_address_customuser_birth_date_and_more.py @@ -0,0 +1,38 @@ +# Generated by Django 4.2.14 on 2026-01-12 16:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0006_customuser_encrypted_private_key_name'), + ] + + operations = [ + migrations.AddField( + model_name='customuser', + name='address', + field=models.CharField(blank=True, max_length=500, null=True, verbose_name='주소'), + ), + migrations.AddField( + model_name='customuser', + name='birth_date', + field=models.DateField(blank=True, null=True, verbose_name='생년월일'), + ), + migrations.AddField( + model_name='customuser', + name='education', + field=models.CharField(blank=True, choices=[('high_school', '고등학교 졸업'), ('associate', '전문학사'), ('bachelor', '학사'), ('master', '석사'), ('doctor', '박사'), ('other', '기타')], max_length=20, null=True, verbose_name='학력'), + ), + migrations.AddField( + model_name='customuser', + name='gender', + field=models.CharField(blank=True, choices=[('M', '남성'), ('F', '여성'), ('O', '기타')], max_length=1, null=True, verbose_name='성별'), + ), + migrations.AddField( + model_name='customuser', + name='phone', + field=models.CharField(blank=True, max_length=20, null=True, verbose_name='전화번호'), + ), + ] diff --git a/users/models.py b/users/models.py index d5f3f92..10106db 100644 --- a/users/models.py +++ b/users/models.py @@ -35,11 +35,33 @@ class CustomUser(AbstractBaseUser, PermissionsMixin): ('user', '일반 사용자'), ) + GENDER_CHOICES = ( + ('M', '남성'), + ('F', '여성'), + ('O', '기타'), + ) + + EDUCATION_CHOICES = ( + ('high_school', '고등학교 졸업'), + ('associate', '전문학사'), + ('bachelor', '학사'), + ('master', '석사'), + ('doctor', '박사'), + ('other', '기타'), + ) + 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="설명") - + desc = models.TextField(blank=True, null=True, verbose_name="설명") + + # 추가 회원 정보 (선택) + phone = models.CharField(max_length=20, blank=True, null=True, verbose_name="전화번호") + address = models.CharField(max_length=500, blank=True, null=True, verbose_name="주소") + gender = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True, null=True, verbose_name="성별") + birth_date = models.DateField(blank=True, null=True, verbose_name="생년월일") + education = models.CharField(max_length=20, choices=EDUCATION_CHOICES, blank=True, null=True, verbose_name="학력") + is_active = models.BooleanField(default=False) is_staff = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) diff --git a/users/serializers.py b/users/serializers.py index 75a87f0..874a913 100644 --- a/users/serializers.py +++ b/users/serializers.py @@ -8,7 +8,8 @@ class RegisterSerializer(serializers.ModelSerializer): class Meta: model = CustomUser - fields = ("email", "name", "password", "grade", "desc") + fields = ("email", "name", "password", "grade", "desc", + "phone", "address", "gender", "birth_date", "education") def create(self, validated_data): password = validated_data.pop("password")