Django 템플릿에서 사용자 프로필에 액세스하는 방법은 무엇입니까?
.NET Framework를 사용하여 사용자 별 추가 정보를 저장하고 AUTH_PROFILE_MODULE
있습니다.
우리는 Django 템플릿에서 사용자에게 접근 할 수 있습니다. {{ request.user }}
하지만 프로필은 함수를 통해서만 접근 할 수 있기 때문에 프로필의 필드에 어떻게 접근 user.get_profile()
합니까?
매번 템플릿에 프로필을 명시 적으로 전달해야합니까?
사용 {{ request.user.get_profile.whatever }}
. Django의 템플릿 언어는 호출 가능한 것을 자동으로 호출합니다 .get_profile()
. 이 경우에는 메서드입니다.
왜 다른지 잘 모르겠지만 {{request.user}} 대신 {{user}}를 사용해야합니다.
예, request.user.get_profile을 사용하여 템플릿에서 프로필에 액세스 할 수 있습니다.
그러나 약간의 주의 사항이 있습니다 . 모든 사용자가 프로필을 가지지는 않습니다. 제 경우에는 관리자 사용자의 경우였습니다. 따라서 {{ request.user.get_profile.whatever }}
템플릿에서 직접 호출 하면 이러한 경우 오류가 발생합니다.
모든 사용자가 항상 프로필을 가지고 있다고 확신하는 경우 템플릿에서 호출하는 것이 안전합니다. 그렇지 않으면 get_profile()
뷰의 try-except 블록 내에서 호출 하여 템플릿에 전달합니다.
Django> 1.5를 사용하는 경우 더 이상 사용할 수 없습니다 get_profile
.
레거시 응용 프로그램이있는 경우 제거해야합니다 AUTH_PROFILE_MODULE = 'myapp.profile'
귀하의에서 settings.py
.
models.OneToOneField(User)
Profile 클래스에서 사용하는 경우 간단히 사용할 수 있습니다.
{{ request.user.profile.whatever }}
Django 템플릿에서
누구에게나 도움이된다면 템플릿에서 다음을 사용했습니다.
사용자 이름: {{ user.username }}
사용자 성명 : {{ user.get_full_name }}
사용자 그룹 : {{ user.groups.all.0 }}
이메일: {{ user.email }}
세션 시작 시간 : {{ user.last_login }}
샘플 결과는 다음과 같습니다.
사용자 : 감사관 ezio
사용자 그룹 : auditGroup
사용자 이름 : testUser03
이메일 : testuser03@auditor.com
세션 시작-2018 년 4 월 16 일 오후 9:38
감사 :)
작동 중!
프로필 모델에서 related_name 제공
user = models.OneToOneField(AUTH_USER_MODEL, related_name="user_profile", on_delete=models.CASCADE)
그런 다음 템플릿 사용. 여기서 company_name은 프로필 테이블의 필드입니다.
{{ request.user.user_profile.company_name }}
참고 URL : https://stackoverflow.com/questions/422140/how-to-access-the-user-profile-in-a-django-template
'Programing' 카테고리의 다른 글
Makefile에서 쉘 명령을 사용하는 방법 (0) | 2020.09.18 |
---|---|
로그 파일 및 콘솔에 출력 쓰기 (0) | 2020.09.18 |
org.w3c.dom.Element를 Java의 문자열 형식으로 출력하는 방법은 무엇입니까? (0) | 2020.09.18 |
HttpRequestBase를 HttpRequest 객체로 어떻게 변환합니까? (0) | 2020.09.18 |
푸시 알림없이 iOS 배지 업데이트 (0) | 2020.09.18 |