• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

4:50초 경 html 질문 드립니다.

21.08.23 19:05 작성 조회수 90

0

{% target_user.profile %}                       <!-- target_user profile이 존재하면, -->
<h2 style="font-family: 'NanumSquareB'">
{{ target_user.profile.nickname }}
</h2>
{% else %]

이 부분에서 profile이 여기 이건 어디서 설정해 준건가요?

2.  6:03초에 보면, detail/2에서 
create profile과 change info 둘다 나와있는데,

templates를 찾아보니, 

change Info는 update.html에, 

그리고 방금 만든 create profile은 detail에 있는데

왜 같이 나오는 걸까요...?? 

(html창을 다르게 만들었는데 왜 다른곳에 만든 연결창이

detail/2에서 같이 나올까요 ㅜ?)

마지막으로...

html { %   %}  해당 정보는

뭐라고 검색하면 찾아볼 수 있을까요...? (혼자 공부가 필요할 거 같아서..)

이건 장고에서만 쓰이는 건가요...?

매번 이상한 질문 답변해주셔서 감사합니다ㅜ 

답변 1

답변을 작성해보세요.

0

안녕하세요.
질문 확인했습니다.

profile 이라는 단어는 저희가 profileapp 에 만든 model 에서 확인할 수 있습니다.


class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,
related_name='profile')


image = models.ImageField(upload_to='profile/', null=True)
nickname = models.CharField(max_length=30, unique=True)
message = models.CharField(max_length=200, null=True)

위의 코드에서,
user 객체와의 연결고리를 만들어 주는 OneToOneField 를 사용하고 있습니다.

이때, 이 필드를 통해 user 객체와 profile 객체의 연결고리가 생성되는데,
user 객체를 확보했다고 했을때, 
해당 user 객체에 연결되어있는 profile 객체에 접근하기 위해 사용 하는 문자열
OneToOneField 에 작성한 related_name 옵션입니다.

해당 옵션을 profile 이라는 이름으로 설정했기 때문에,
user 객체에서 profile 이라는 이름으로 profile 객체에 접근이 가능한거에요.

만약 related_name 옵션이 'prof' 와 같이 설정되어있었다면,

보내주신 코드가

{% target_user.prof %}                       <!-- target_user profile이 존재하면, -->
<h2 style="font-family: 'NanumSquareB'">
{{ target_user.prof.nickname }}
</h2>
{% else %]

이런식으로 바뀌어야겠죠.

답변이 도움이 되셨길 바래요!
감사합니다-