사용자가 로그인했는지 확인하는 방법 (user.is_authenticated를 올바르게 사용하는 방법)?
이 웹 사이트를 살펴보고 있지만 작동하지 않는 방법을 알 수없는 것 같습니다. 현재 사이트 사용자가 로그인 (인증)되었는지 확인해야합니다.
request.user.is_authenticated
사용자가 로그인했는지 확인하더라도 다음과 같이 반환됩니다.
>
위의 URL의 첫 번째 섹션에서 다음과 같은 다른 요청을 할 수 있습니다.
request.user.is_active
성공적인 응답을 반환합니다.
Django 1.10+ 업데이트 : is_authenticated
이제 Django 1.10의 속성입니다. 이 방법은 이전 버전과의 호환성을 위해 여전히 존재하지만 Django 2.0에서는 제거됩니다.
Django 1.9 이상 :
is_authenticated
함수입니다. 당신은 그것을 이렇게 불러야합니다
if request.user.is_authenticated():
# do something if the user is authenticated
Peter Rowell이 지적했듯이 기본 장고 템플릿 언어에서는 함수를 호출하기 위해 괄호를 사용하지 않습니다. 따라서 템플릿 코드에서 다음과 같은 것을 보았을 것입니다.
{% if user.is_authenticated %}
그러나 파이썬 코드에서는 실제로 User
클래스 의 메소드입니다 .
장고 1.10+
메소드가 아닌 속성을 사용하십시오 .
if request.user.is_authenticated: # <- no parentheses any more!
# do something if the user is authenticated
Django 2.0에서는 같은 이름의 방법을 사용하지 않으며 Django 문서에서는 더 이상 언급하지 않습니다.
Django 1.10 및 1.11의 경우 속성 값은
CallableBool
부울이 아니며 이상한 버그가 발생할 수 있습니다. 예를 들어 JSON을 반환하는 뷰가 있습니다.
return HttpResponse(json.dumps({
"is_authenticated": request.user.is_authenticated()
}), content_type='application/json')
속성 request.user.is_authenticated
으로 업데이트 한 후 예외가 발생했습니다 TypeError: Object of type 'CallableBool' is not JSON serializable
. 해결책은 직렬화 할 때 CallableBool 객체를 올바르게 처리 할 수있는 JsonResponse를 사용하는 것입니다.
return JsonResponse({
"is_authenticated": request.user.is_authenticated
})
다음 블록이 작동해야합니다.
{% if user.is_authenticated %}
<p>Welcome {{ user.username }} !!!</p>
{% endif %}
당신의 관점에서 :
{% if user.is_authenticated %}
<p>{{ user }}</p>
{% endif %}
컨트롤러 기능에서 데코레이터를 추가하십시오.
from django.contrib.auth.decorators import login_required
@login_required
def privateFunction(request):
들어 장고 2.0 이상 버전 사용
if request.auth:
# Only for authenticated users.
자세한 내용은 https://www.django-rest-framework.org/api-guide/requests/#auth를 방문 하십시오.
Django 2.0 이상 버전에서 request.user.is_authenticated ()가 제거되었습니다.
'Programing' 카테고리의 다른 글
SSL 핸드 셰이크 경고 : Java 1.7.0으로 업그레이드 한 후 unrecognized_name 오류 (0) | 2020.04.21 |
---|---|
트위터 부트 스트랩 2에 버튼을 제출하기 위해 아이콘 추가 (0) | 2020.04.21 |
N 분마다 오프셋을 더한 Cron 작업 실행 (0) | 2020.04.21 |
무료 XML 형식 도구 (0) | 2020.04.21 |
bash 스크립트 자체에서 stdout COPY를 로그 파일로 리디렉션 (0) | 2020.04.21 |