일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- list
- Excel
- dataframe
- Apache
- numpy
- 파이썬
- gas
- string
- Mac
- math
- Github
- GIT
- PANDAS
- SQL
- array
- matplotlib
- Tkinter
- Python
- Google Excel
- PostgreSQL
- c#
- google apps script
- hive
- django
- Google Spreadsheet
- Java
- Redshift
- PySpark
- Kotlin
- Today
- Total
달나라 노트
Python django project 1 - 게시판 만들기 ch.5 : django admin 본문
Python django project 1 - 게시판 만들기 ch.5 : django admin
CosmosProject 2020. 12. 13. 01:09
지난 챕터에서 user app의 model을 구성했습니다.
그러면 이 model이 제대로 생성되었는지, model에 데이터는 어떤 것들이 존재하는지를 볼 수 있는 수단이 필요합니다.
그것이 바로 django-admin입니다.
일단 django admin에 접속하기 위해선 super user 계정을 만들어야합니다.
manage.py 파일이 있는 pro directory로 이동하여 terminal에 아래 명령어를 입력합시다.
pro % python manage.py createsuperuser
그러면 username, email, password를 입력하라고 나오는데 입력 후 super user를 생성해줍시다.
django admin 접속을 위해선 일단 현재 django project의 server를 실행시켜야합니다.
마찬가지로 manage.py 파일이 있는 pro directory로 이동하여 terminal에 아래 명령어를 입력합시다.
pro % python manage.py runserver
그러면 어떤 메세지가 나오면서 server가 실행됨을 알 수 있습니다.
(참고로 run 상태인 서버를 종료하려면 terminal에 ctrl + c를 입력해주면 됩니다.)
이제 web browser(저는 chrome을 이용했습니다.)에서 127.0.0.1:8000/admin 이라는 주소를 입력해서 이동해봅시다.
그러면 Django administration이라는 글자가 뜨며 username, password를 입력하라는 창이 뜨는데, 여기에 아까 생성했던 super user 정보를 입력해주면 됩니다.
그러면 위와 같은 화면이 뜨는데 이것이 django admin 화면입니다.
Users를 클릭해보면 내가 생성한 super user 정보가 담겨있을겁니다.
근데 model user 관련 내용은 보이지 않습니다.
그 이유는 우리가 model만 생성했을 뿐 이 model이 django admin에 보여지도록 설정해주지 않았기 때문입니다.
따라서 이를 설정해주기 위해 app/user/admin.py 파일을 아래처럼 수정해줍시다.
from django.contrib import admin
from . import models as userapp_model
# Register your models here.
class AdminModelUser(admin.ModelAdmin):
pass
admin.site.register(userapp_model.ModelUser, AdminModelUser)
위 코드는 user app의 model을 admin에 등록해주기 위한 코드입니다.
먼저 AdminModelUser라는 class를 생성합니다.
그리고, admin.site.register(등록할 model명, 생성한 admin class명)를 통해 등록을 완료해줍니다.
그리고 다시 django admin으로 들어가 새로고침을 해주면
위 화면처럼 Model_user가 생성된 것을 알 수 있습니다.
Model_user... 어디서 많이 봤지않나요?
이전 챕터에서 model 구성 시에 class Meta: 부분에 verbose_name = 'Model_user'라는 내용을 적어줬었는데 바로 이 내용이 위처럼 표시되는 것입니다.
Model_user를 클릭해서 들어가보면 위와 같은 화면이 나올텐데 아직 등록된 유저가 없어서 아무것도 나오지 않습니다.
우측 상단에 ADD MODEL_USER + 버튼을 클릭해봅시다.
그러면 위와 같은 화면이 나오는데 user app model에 들어갈 데이터를 직접 만들 수 있습니다.
한번 테스트용으로 한번 생성해봅시다.
값 입력 후 SAVE 버튼을 누르면 위처럼 새로운 record가 생성된걸 볼 수 있습니다.
근데 생성된 값이 test라고 표시되네요?
이건 우리가 이전 챕터에서 def __str__ ~~ 부분에서 return self.username을 해줬는데 제가 생성한 테스트 유저의 username이 'test'이기 때문에 이 row를 표시하는 대표 텍스트로 username인 test가 표시되는 것입니다.
test를 클릭해서 들어가보면 username과 비밀번호가 잘 등록된 것을 알 수 있죠.
자, 근데 뭔가 불편합니다.
이 화면에서 username, password, registered_dttm 세 가지 컬럼이 나와서 한눈에 유저 정보를 볼 수 있으면 좋겠는데, 유저 정보를 보려면 클릭을 해서 들어가야합니다.
게다가 클릭을 해서 들어가도 registered_dttm 관련 정보는 보이지 않습니다.
물론 제대로 등록이 되지 않은 것은 아닙니다. 단순히 admin 화면에 위와 같은 정보가 보이지 않는 것일 뿐이죠.
이 부분을 개선해보겠습니다.
아까 수정했던 app/user/admin.py를 아래처럼 수정해줍시다.
from django.contrib import admin
from . import models as userapp_model
# Register your models here.
class AdminModelUser(admin.ModelAdmin):
list_display = ('id', 'username', 'password', 'registered_dttm')
admin.site.register(userapp_model.ModelUser, AdminModelUser)
list_display라는 것이 추가되었습니다.
이건 django admin에서 해당 model의 어떤 컬럼을 보여지게 할 것인지를 설정하는 부분입니다.
그래서 저는 User model의 모든 컬럼(username, password, registered_dttm)을 적었습니다.
근데 한 가지 이상하죠.
바로 id라는 이름의 컬럼입니다.
저는 user model을 생성할 때 id라는 컬럼을 설정하지 않았습니다. 근데 왜 이걸 적었을까요?
일단 django에서 어떤 model에 새로운 데이터가 추가될 경우 자동으로 id라는 컬럼에 데이터가 추가됩니다.
이 컬럼에는 추가된 데이터의 순서대로 1부터 2, 3, 4, ... 등의 숫자가 붙게됩니다. 이걸 primary key라고 부르죠.
이렇게까지 하고 다시 django admin으로 돌아가보면 아래처럼 model의 모든 정보가 보일 것입니다.
첫 번째 등록된 정보라 ID 컬럼에 1이 찍혀있고,
username, password, registered_dttm 컬럼들의 정보도 다 보이는 것을 알 수 있네요.
다음 챕터에서는 template과 view를 만들어봅시다.
'Python django > Python django project 1' 카테고리의 다른 글
Python django project 1 - 게시판 만들기 ch.7 : 회원가입 (0) | 2020.12.13 |
---|---|
Python django project 1 - 게시판 만들기 ch.6 : template & view (0) | 2020.12.13 |
Python django project 1 - 게시판 만들기 ch.4 : user app의 model 구성 (0) | 2020.12.13 |
Python django project 1 - 게시판 만들기 ch.3 : app 구성 (0) | 2020.12.12 |
Python django project 1 - 게시판 만들기 ch.2 : django의 구조 (0) | 2020.12.12 |