이번엔 is_anonymous 와 is_authenticated 를 알아보겠습니다.
1. is_anonymous 소개 및 예시
is_anonymous는 로그아웃 여부를 묻습니다. 즉 그 유저가 로그아웃된 상태라면 True를 반환하게 됩니다.
그렇다면 views.py 파일에선 어떻게 사용될까요?
1 2 3 4 5 6 | if request.user.is_anonymous: pass # do something if user is logged out else: pass # do something if user is logged in | cs |
이렇게 사용될 수 있을 것입니다. 이번엔 templates 파일에서 어떻게 사용될지 알아봅시다.
1 2 3 | {% if user.is_anonymous %} <p>This user is logged out</p> {% endif %} | cs |
이렇게 사용될 수 있습니다. django의 강력한 기능인 템플릿파일의 템플릿 태그에서도 그대로 쓰인다는게 참 편리합니다.
2. is_authenticated 소개 및 예시
is_authenticated는 위에서 살펴 본 is_anonymous와 반대된다고 생각하시면 됩니다. 저 코드와 반대로 로그인 여부를 묻는 것입니다. 만약 로그인 되어 있다면 이 코드는 True를 반환합니다. 그렇다면 이 코드가 views.py에서 어떻게 사용되는지 알아볼까요?
1 2 3 4 5 6 | if request.user.is_authenticated: pass # do something if user is logged in else: pass # do something if user is logged_out | cs |
이렇게 위와는 반대로 사용되게 됩니다. 그렇다면 템플릿 태그는 어떨지 알아보겠습니다.
1 2 3 | {% if user.is_authenticated %} <p>이 유저는 로그인 되어 있습니다.</p> {% endif %} | cs |
이렇게 사용되게 됩니다. 템플릿 태그를 이용하면 둘 중 하나만 알아도 대부분의 코드를 구현할 수 있을 것입니다.
1 2 3 4 5 | {% if user.is_authenticated %} <p>이 유저는 로그인 되어 있습니다.</p> {% else %} <p>이 유저는 로그아웃 되어 있습니다..</p> {% endif %} | cs |
이렇게 사용하면 위에서 {% if user.is_authenticated %}가 False를 반환하게 될 경우 {% else %}안의 코드가 실행됩니다. 그러므로 한 가지만 알면 두 가지 경우를 다 처리할 수 있습니다.
3. is_active 소개 및 예시
그렇다면 is_active는 어떨까요? 우선 템플릿 태그는 이렇게 쓸 수 있습니다.
1 2 3 4 5 | {% if user.is_active %} <p>이 유저는 활성화 되어 있습니다.</p> {% else %} <p>이 유저는 비활성화 되어 있습니다..</p> {% endif %} | cs |
is_active는 단순히 로그인, 로그아웃을 넘어서 그 유저의 현재 활동 가능 상태를 판단합니다. is_authenticated의 조금 더 발전된 버전입니다.
'Python' 카테고리의 다른 글
[ASGI] ASGI와 websocket 연결 설명 (0) | 2018.02.13 |
---|---|
[helloworld] for문 사용법 (0) | 2018.02.11 |
[django] django form 사용법 (0) | 2018.02.11 |
[django] django channels 사용법 (0) | 2018.02.10 |
[django] django에서 DoesNotExist와 인증 Backend 만들기 (0) | 2018.02.07 |