Django 15

‍박태우·2023년 5월 11일
0
post-custom-banner

#DetailView를 이용한 개인 페이지 구현

  • 앞서 말한 read view는 장고에서는 Detail View라는 이름으로 사용되고 있다.

  • accountapp의 view.py에 지정한 AccountDetailView 정보

  • accountapp 의 url.py에 detail뷰의 경로를 아래와 같이 지정해준다.

(detail 같은 경우 특정 유저의 정보를 봐야하는 것인데, 그 계정의 id 즉 primary key가 필요하다. 몇번 유저의 정보의 접근 할 것인지 지정해줘야 이것이 원하는 대로 동작 하게 된다. 따라서 위와 같이 경로명이 일반적이지 않고 다르다.)

  • 위에서 지정해준 템플릿 detail.html이 없으므로 아래와 같이 만들어 줘야한다.

    (user.date_joined 는 유저가 회원가입한 날짜, user.username은 user의 id 정보를 보여주는 역할을 한다.)
  • 정보 페이지로 향하는 링크 만들기
    (로그인이 되어 있는 경우에만 활성화 되어야 한다.)

    (url 정보와 유저의 pk 정보를 같이 보내준다.)

  • 실행 결과

(header 부분을 보면 로그인 된 상태에선 Mypage가 활성화된 모습을 볼 수 있다.)

(MyPage를 눌러서 확인한 나의 가입 정보와 아이디 정보)

  • detail.html에서의 문제

    (이와 같이 user. 으로 지정하면 다른 사람의 page (ex:인스타그램에서 연예인 페이지를 보고 싶은 경우)를 보고 싶어 들어가는 경우에도 자기 자신의 페이지만 나오게 된다. )

위의 detail.html 템플릿에서 사용하는 user 객체의 이름을 다르게 설정 가능하다. 따라서 아래와 같이 detailView 에 지정

(target_user라고 이름을 따로 지정해 주었고 아래와 같이 detail.html에 따로 지정해주었다.)


(이렇게 되면 지금은 나의 페이지 밖에 없지만 나중에 다른 사람이 나의 페이지에 오더라도 정상적으로 나의 정보를 볼 수 있게 되는 것이다.)

  • 마지막으로 유저의 id의 글씨체를 바꿔 보았으며 이는 코드와 실행 결과이다.

profile
잘 부탁드립니다.
post-custom-banner

0개의 댓글