회원가입, 로그인을 하기 위한 테이블
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.conf import settings
# Create your models here.
class UserModel(AbstractUser):
class Meta:
db_table = "my_user"
bio = models.TextField(max_length=500, blank=True)
follow = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='followee')
테이블에 비밀번호를 저장할 때, create_user를 사용하여 암호와해서 저장해야 한다.
그래야 로그인 할 때, 비밀번호가 암호화 되어 로그인 기능을 제대로 사용할 수 있다.
def sign_up_view(request):
if request.method == 'GET':
user = request.user.is_authenticated # 로그인 된 사용자가 요청하는지 검사
if user: # 로그인이 되어있다면
return redirect('/')
else: # 로그인이 되어있지 않다면
return render(request, 'user/signup.html')
elif request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
password2 = request.POST.get('password2', '')
bio = request.POST.get('bio', '')
if password != password2:
return render(request, 'user/signup.html', {'error': '패스워드를 확인 해 주세요!'})
else:
if username == '' or password == '':
return render(request, 'user/signup.html', {'error': '사용자 이름과 패스워드는 필수 값 입니다'})
exist_user = get_user_model().objects.filter(username=username)
if exist_user:
return render(request, 'user/signup.html', {'error': '사용자가 존재합니다'})
else:
UserModel.objects.create_user(username=username, password=password, bio=bio)
return redirect('/sign-in')
'코딩공부' 카테고리의 다른 글
| Django ForeignKey / TIL_221006 (1) | 2022.10.06 |
|---|---|
| Django 이미지 업로드 / TIL_221005 (0) | 2022.10.05 |
| Django models 이미지 업로드_1 / TIL_220930 (0) | 2022.09.30 |
| Figma, API, SQL, SQLite 란? / TIL_220929 (0) | 2022.09.29 |
| Django AbstracUser / TIL_220928 (0) | 2022.09.28 |
댓글