| 6번째 줄: |
6번째 줄: |
| | == 뷰에서 user모델 부르기 == | | == 뷰에서 user모델 부르기 == |
| | 뷰에서 유저모델을 불러오는 방법은 3가지가 있다. | | 뷰에서 유저모델을 불러오는 방법은 3가지가 있다. |
| | + | |
| | + | view에 request가 포함된다면 request.user로 사용자에 접근한다.(사실, 모델을 편집하지 않는 한 아래처럼 모델을 임포트 해올 필요는 없다.) |
| | {| class="wikitable" | | {| class="wikitable" |
| | !방법 | | !방법 |
| 19번째 줄: |
21번째 줄: |
| | |settings를 경유해 부르기 | | |settings를 경유해 부르기 |
| | |settings에 지정된 유저모델을 불러오는 것. | | |settings에 지정된 유저모델을 불러오는 것. |
| − | |from customuser.settings import AUTH_USER_MODEL | + | 문자열이 반환되어 쓰인다. |
| | + | |
| | + | (권장되는 방법) |
| | + | |<syntaxhighlight lang="python"> |
| | + | from config.settings import AUTH_USER_MODEL |
| | + | |
| | + | class User(AbstractUser): |
| | + | followers = models.ManyToManyField( |
| | + | settings.AUTH_USER_MODEL, |
| | + | related_name='followings' |
| | + | ) |
| | + | </syntaxhighlight> |
| | |- | | |- |
| | |메서드 사용 | | |메서드 사용 |
| | |유저모델을 불러오는 메서드를 사용한다. | | |유저모델을 불러오는 메서드를 사용한다. |
| − | (가장 권장되는 방법) | + | 클래스가 반환되어 쓰인다. |
| − | |from django.contrib.auth import get_user_model | + | (권장되는 방법) |
| − | get_user_model() # 이 안에 유저모델이 담긴다.
| + | |<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== | + | == 탬플릿에서 user 사용 == |
| − | request.user로 사용자에 접근한다.
| + | 기본적으로 request가 담겨서 가기 때문에 view에서 user모델에 대한 사용이 없더라도 <code><nowiki>{{user}}</nowiki></code>을 통해 바로 유저모델을 사용할 수 있다. |
| | | | |
| | + | ==user 안의 속성.== |
| | 장고에서 사용하는 user의 하위속성엔 무엇이 있을까? | | 장고에서 사용하는 user의 하위속성엔 무엇이 있을까? |
| | {| class="wikitable" | | {| class="wikitable" |