바뀜
→뷰에서 user모델 부르기
1번째 줄:
1번째 줄:
+
+
+
+
+
== 개요 ==
== 개요 ==
+게시판이나 설문 등 장고에서 구현한 기능들은 사용자의 유저모델을 불러 사용하는 경우가 많다. 이러한 지식에 대해 더 자세히 다루기 위한 분류.
+
커스텀 유저에 대한 건 [http://id8436.iptime.org:2786/mediawiki/index.php/%ED%9A%8C%EC%9B%90%EA%B4%80%EB%A6%AC_2._%EC%BB%A4%EC%8A%A4%ED%85%80%EC%9C%A0%EC%A0%80 링크]를 참고하자.
커스텀 유저에 대한 건 [http://id8436.iptime.org:2786/mediawiki/index.php/%ED%9A%8C%EC%9B%90%EA%B4%80%EB%A6%AC_2._%EC%BB%A4%EC%8A%A4%ED%85%80%EC%9C%A0%EC%A0%80 링크]를 참고하자.
−==user==
+== 뷰에서 user모델 부르기 ==
−request.user로 사용자에 접근한다.
+뷰에서 유저모델을 불러오는 방법은 3가지가 있다.
+view에 request가 포함된다면 request.user로 사용자에 접근한다.(사실, 모델을 편집하지 않는 한 아래처럼 모델을 임포트 해올 필요는 없다.)
+{| class="wikitable"
+!방법
+!설명
+!활용
+|-
+|직접 부르기
+|커스텀 유저모델이 있는 경우 사용한다.
+직접 유저앱의 유저모델을 부르기.
+|다음과 같은 형태이다.
+from users import User
+|-
+|settings를 경유해 부르기
+|settings에 지정된 유저모델을 불러오는 것.
+문자열이 반환되어 쓰인다.
+(권장되는 방법)
+|<syntaxhighlight lang="python">
+from config.settings import AUTH_USER_MODEL
+class User(AbstractUser):
+ followers = models.ManyToManyField(
+ settings.AUTH_USER_MODEL,
+ related_name='followings'
+ )
+</syntaxhighlight>
+|-
+|메서드 사용
+|유저모델을 불러오는 메서드를 사용한다.
+클래스가 반환되어 쓰인다.
+(권장되는 방법)
+|<syntaxhighlight lang="python">
+from django.shortcuts import render
+from django.contrib.auth import get_user_model # 이 안에 유저모델이 담긴다.
+def main_show(request):
+ user = get_user_model()
+ if user.is_social == True:
+ test = '소셜'
+ else:
+ test = '안소셜.'
+ context = {'test':test}
+ return render(request, 'main/main.html', context)
+</syntaxhighlight>
+|}
+== 탬플릿에서 user 사용 ==
+기본적으로 request가 담겨서 가기 때문에 view에서 user모델에 대한 사용이 없더라도 <code><nowiki>{{user}}</nowiki></code>을 통해 바로 유저모델을 사용할 수 있다.
+==user 안의 속성.==
장고에서 사용하는 user의 하위속성엔 무엇이 있을까?
장고에서 사용하는 user의 하위속성엔 무엇이 있을까?
{| class="wikitable"
{| class="wikitable"
17번째 줄:
69번째 줄:
if request.user.is_authenticated:
if request.user.is_authenticated:
|-
|-
−|
+|id
−|
+|유저의 pk가 담긴다.
−|
+|posting.like_users.filter(id=request.user.id)
|-
|-
|
|
25번째 줄:
77번째 줄:
|
|
|}
|}
+[[분류:8. 장고 이외지식]]