What I Learned

TIL_20221014_장고 로그인 유저 체크

오베르 2022. 10. 14. 23:26

오늘의 트러블 슈팅

1. 문제점

- 장고에서 로그인 후 로그인 여부를 체크하고 로그인 유저가 아닐 경우에 로그인 화면으로 redirect 해야하는 상황에서 로그인 유저를 체크하는 방법을 제대로 구현하지 못했었음


2. 몰랐었던 것 (+ 시도)

- 로그인 함수에서 redirect 로 home 화면으로 보내고 home 함수에서 user 를 받아오는 것을 잘못 가져옴

 

아래처럼 유저 값을 받아오고 나서는 유저가 없는 것을 설정한다든지 잘못 이해함

    user = request.POST.get(request.user)
    if user is None:
        return redirect('user:login')

해당 git

 


3. 어떻게 해결했는지

    if request.user.is_authenticated:
        return render(request, 'home.html')

해당 git

 

장고의 authenticate 로 login이 잘되었는지 체크해서 확인

 

참조:

Django에서 로그인 한 사용자 확인

 

 

이거 외에도 좋지는 않은 방법이나 시도해봤던 솔루션

    user = request.user
    users = User.objects.all()
    if user in users:
        return render(request, 'home.html')
    elif request.user is not users:
        return redirect('user:login')

모든 유저를 다 갖고 와서 비교하는 거라 좋은 방법이 아님

 

4. 이로부터 배운 것
장고의 로그인을 체크하는 방법에 대해서 배움

 


오늘 한 일

1. 파이썬 공부

2. 장고 연습