티스토리 뷰

반응형

장고에서는 관리자 페이지를 만들어줍니다.

 

서버를 돌리고 

python manage.py runserver

 

localhost:8000/admin 여기로 들어가면 이런 페이지가 나옵니다. 

 

 

이렇게 접속이 되는 이유는

mysite > urls.py 에 들어가보면

이렇게 admin urlpatterns가 기본으로 정의되어있기 때문입니다. 

 

 

그럼 관리자 사이트에 로그인할 수 있는 계정을 만들어주겠습니다. 

아래 명령어를 실행시켜주세요. 관리자를 superuser라고 하나봐요...!! 

python manage.py createsuperuser

 

그리고 username을 입력하라고 나오면 아래와 같이 해주세요

 

그리고 다시 서버를 돌린 후, 

python manage.py runserver

 

만든 계정으로 로그인 해주세요

그러면 이런 화면이 나오네요 :-) 

 

우리의 목적은 여기서 polls앱의 Question 데이터베이스를 보는 것입니다...!!!

 

polls > admin.py에 가서

admin site에 Question 모델을 등록해주는 코드를 작성해주세요 

 

 

그리고 관리자 사이트를 다시 새로고침해주면

이렇게 Questions이 추가 되었습니다. 

 

 

Questions에 들어가서 Add question을 해보세요

 

 

 

이전 포스팅에서 verbose_name으로 'date published' 를 넘겨준게 여기 나오는 군요....!!! 

 

 

이렇게 Question 목록도 보이고 (저는 총 두개를 추가해줬음)

 

 

Question을 삭제, 수정할 수도 있으며 HISTORY를 볼 수 있는 기능도 제공하는 군요 짱짱 👍

 

 

 

근데 Question 목록을 Question Object (1) 이런식으로 보고 싶지 않습니다 

저걸 일일이 눌러서 어떤 질문인지 봐야하기 때문이죠 

 

그럴때는 __str__() 함수를 쓰면 됩니다. 

Model.__str__() 문서를 보면

장고 admin site에서 오브젝트를 볼때, __str__() method 를 이용해서 nice하고 human-readable하게 모델을 표현할 수 있다고 나와있습니다.

 

Question 모델에 아래와 같이 str 메소드를 만들어주세요 

 

 

위의 메소드는 옛날 방식이고 아래 방식을 요즘 더 많이 쓴다고 하네요 저는 이렇게 구현해주겠습니다. 

 

 

그리고 관리자 페이지를 새로고침해주면 Object 목록이 question_text로 표현되는 것을 볼 수 있습니다. ☺️

(근데 모델 안에 함수를 추가했는데 migrate 안해도 왜 잘바뀌는 지 모르겠네요 🥺)

 

 

 

TimeZone 설정하기

제가 TimeZone 설정을 빼먹어서 Object를 만들때 Now를 누르면 미국 시간이 나오는 군요

mysite > settings.py 에 가보면 TIME_ZONE이 UTC라고 되어있습니다

 

 

이렇게 바꿔주세요 

 

 

그리고 관리자 페이지를 새로고침하면 한국시간으로 바뀌는 것을 볼 수 있습니다 :-) 

반응형
댓글