1) 사용자 정의 모델 생성 ( models.py )
from django.db import models
from django.contrib.auth.models import AbstractUser
class Users(AbstractUser):
level = models.CharField(max_length=10)
profile_img = models.ImageField(upload_to='profile_images/', null=True, blank=True)
Users모델은 Django의 기본 `AbstractUser`를 확장하여 사용자의 level과 프로필 이미지를 추가로 저장할 수 있게 합니다.
2) form 확장
user_form.py 파일 생성 후 아래 내용 입력
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
class UserCreateForm(UserCreationForm):
class Meta:
model = Users
fields = ('username', 'email', 'password1', 'password2', 'level', 'profile_img')
class UserModifyForm(UserChangeForm):
class Meta:
model = Users
fields = ('username', 'email', 'level', 'profile_img')
- UserCreateForm은 회원가입 할 때 사용
- UserModifyForm은 회원정보 수정시 사용
3) 회원가입 views.py 예시
request.FILES 는 프로필 사진에 등록할 IMAGE 파일
def signup_view(request):
if request.method == 'POST':
form = UserCreateForm(request.POST, request.FILES)
print(form.errors)
if form.is_valid():
user = form.save()
login(request, user) # 회원 가입 즉시 로그인
return redirect('index') # 홈페이지 or 대시보드로 리다이렉트
else:
form = UserCreateForm()
return render(request, 'user/signup.html', {'form': form})
'Django > Django 회원 관리' 카테고리의 다른 글
Django) JavaScripts를 이용한 상호작용(image 미리보기) (0) | 2024.04.25 |
---|---|
Django) 이미지 및 미디어 파일 관리 (0) | 2024.04.25 |
Django 정적(static)파일 (image,css) 사진 업로드 (1) | 2024.04.19 |
Django 회원 관리 서브앱(app) 로그인 기능 구현 (1) | 2024.04.19 |