[Django] 관리자 모델 관리
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
[Django] 관리자 모델 관리
관리자 페이지에서 모델을 관리할 수 있도록 모델을 등록하겠습니다.
저번에 papa_user 앱에 papauser 모델을 생성했습니다. [관련링크]
papauser 모델은 models.py에 들어있습니다.
admin에 모델을 등록하기 위해서는 admin.py에서 작업을 처리해줘야합니다.
모델 등록
from .models import papauser #papauser 모델이 필요한데 모델은 models.py에 있기 때문에 models.py에서 papauser 모델을 import함 #다른 파일에 있는 코드를 가져오는 것, 다른 파일에 정의되어 있는 모델을 가져오는 행위 class papauser_admin(admin.ModelAdmin): list_display = ['username', 'password', 'registered_dttm'] #단순하게 admin.site.register(papauser, papauser_admin) 명령어만 사용해도 등록 가능 #하지만 모델에 대한 커스텀이 허용되지 않음 #ModelAdmin을 상속해서 커스텀 후 클래스를 통해 등록 admin.site.register(papauser, papauser_admin) #가져온 모델을 등록하는 명령어(papauser : 모델이 가진 정보, papauser_admin : 모델 커스텀 정보)
위의 명령어를 추가해줍니다.
이제 papa_user 앱에서 papauser 모델이 관리자 페이지에 등록이 됬습니다.
모델을 통해 DB에 값 넣기
관리자 페이지에서 모델이 등록된 것을 볼 수 있습니다.
Add 버튼을 통해서 사용자를 추가할 수 있습니다.
모델의 데이터 기준
papa_user/models.py에서 코드를 보면
class papauser(models.Model): username = models.CharField(max_length=64, verbose_name='사용자명') password = models.CharField(max_length=64, verbose_name='비밀번호') registered_dttm = models.DateTimeField(auto_now_add=True, verbose_name='등록시간')
이렇게 구성되어있습니다.
verbose_name에 작성된 명칭으로 화면에 나와있는 것을 볼 수 있습니다. 그리고 값을 받는 변수는 2개를 설정했습니다.
그래서 사용자를 추가할 때 사용자명(username), 비밀번호(password)의 값만 받게 나와있습니다.
save 버튼을 누르게되면 안에 새로 등록한 user의 값들이 보입니다.
초기값에는 이렇게 보이지 않습니다. 이렇게 보게 하기 위해서는
class papauser_admin(admin.ModelAdmin): list_display = ['username', 'password', 'registered_dttm']
위의 코드를 입력해 주었기 때문에 모델이 커스텀되서 위의 화면처럼 보이게 된 것입니다.
papauser 모델의 내용을 list화 시켜주는 내용
모델의 세부 변수 값을 바로 볼 수 있기 때문에 데이터베이스 테이블과 비슷한 모습을 가짐
모델 수정
models.py에서 수정하게 됩니다.
Django는 기본적으로 모델을 복수형으로 보여줌
verbose_name : 복수형이 아닌 모델의 명칭을 변경
verbose_name_plural : 복수형으로 표현된 모델의 명칭을 변경
복수형으로 표현된 모델의 명칭을 '사용자_TABLE'로 변경
모델의 명칭을 '사용자'로 변경
아직 부족한 부분이 많습니다.
정확한 정의나 명칭의 오류가 조금씩 있을 수 있습니다.
감사합니다 :)
from http://greatpapa.tistory.com/19 by ccl(A) rewrite - 2020-03-14 13:54:11
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기