가끔 vscode
로 작업을 해서 서버를 굴리다보면 css
등의 변경 사항이 제대로 적용되지 않는 경우가 많다.
그럴 때 해결 방법이 있다!!
브라우저 캐시를 삭제하면 된다.
이 순서로 진행하면 아주 서버가 문제 없이 잘 굴러간다.
단, 캐시 삭제할 때 날리기 싫은 타 사이트 캐시들이 있다면 체크 해제 해줘야 한다. 아님 로그인 저장 정보가 다 날라감...
# user/views.py
def log_in_view(request):
if request.method == 'POST':
email = request.POST.get('email', None)
password = request.POST.get('password', None)
me = auth.authenticate(request, email=email, password=password)
if me is not None:
auth.login(request, me)
return redirect('/')
else:
return redirect('user:log_in')
이런 식으로, html
의 textarea
에서 값을 받아와 데이터베이스의 email
값이랑 비교하려고 했으나, 로그인이 제대로 되지 않는 issue가 발생했다.
공식 문서를 읽어보니, 문제는 기본 method가 username
이랑 password
를 비교하도록 세팅되어 있기 때문에 생기는 일이라는 것!
따라서, 저 상태에서 email을 로그인 용 인자로 쓰고 싶다면, 함수를 수정해 줄 필요가 있다.
ㅡㅡ
참고 글을 따라서 차례차례 수정해보자.
user/models.py
를 수정# user/models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
class MyUser(AbstractUser):
email = models.EmailField(unique=True)
settings.py
수정AUTH_USER_MODEL = 'user.MyUser'
migration
하기python manage.py makemigrations
python manage.py migrate
이렇게 진행하면 된다.