본문 바로가기
개발

[Django] lotto - admin 사이트에 Model 등록하기

by 마스터누누 2017. 6. 28.
728x90
반응형

lotto - admin 사이트에 Model 등록하기




이번시간에는 admin을 사용해서 model의 데이터를 확인하는 것에 대해 알아보자

mysite의 urls.py에 가면 우리가 별도로 설정하지 않았지만 생성되어있는 admin이라는 경로가있다.

서버를 실행시킨 후에 localhost:8000/admin이라는 주소로 들어가면 관리자 페이지로 접속이 가능한데,

장고에서는 귀찮은 관리자 페이지 생성까지 모두 제공해준다.


이렇게 만들어진 관리자 페이지를 사용하기 위해서는 아이디와 패스워드 생성이 필요하다.

따라서 manage.py가 있는 디렉토리에서

$python manage.py createsuperuser라는 명령어를 입력하면 된다.

명령어 입력시 아이디와 이메일 비밀번호를 입력하라고 나오는데, 자신이 편한 아이디와 비밀번호를 사용하자

이것으로 super user가 생성되었다.






다시 관리자 페이지로 들어가서 생성한 아이디와 비밀번호를 입력하면 페이지에 접속이 가능하다.

그러나 우리가 생성한 모델인 GuessNumbers는 보이지 않는데, 이는 별도로 설정이 필요하기 때문이다.


lotto 앱의 admin.py에 들어가서 

from lotto.models import GuessNumbers를 추가해준후

아래쪽에 admin.site.register(GuessNumbers)를 입력해준다.

GuessNumbers를 추가할때 같은 레벨의 폴더에 있기 때문에 lotto를 생략 가능하다.


이와 같은 작업을 마치면 관리자페이지에서 GuessNumbers가 보이고, 데이터 추가삭제까지 가능하다.






임의로 데이터를 추가해 봤는데, 출력되는 데이터의 이름이 예쁘지 않다.

대표값이 애매해서 데이터가 어떤것인지 알수 없다

따라서 __str__이라는 함수를 오버라이딩 함으로써 이 문제를 해결할 수가 있다.





1
2
def __str__(self):
        return "%s %s" % (self.name, self.text)
cs


만약 models.py에서 GuessNumbers라는 클래스 안에 위의 코드를 오버라이딩한다면

관리자 페이지에서 출력되는 데이터가 name과 text로 변경된다.





출처 : 인프런, 파이썬 웹 프로그래밍, Django로 웹 서비스 개발하기




반응형

댓글