Django의 대표 기능 중 하나인 Admin을 살펴보고자 합니다.
1. Admin의 기능 : 데이터베이스 내 데이터를 직관적으로 관리가 가능
2. Django Admin 계정 생성하기(CLI의 VENV에서 입력)
python manage.py createsuperuser

※ 패스워드는 안 보이게 입력되나 실제로 입력되고 있음
3. http://127.0.0.1:8000/admin 로 접속

4. Django에서 기본 제공하는 Users 모델을 확인 가능
5. 직접 만든 모델을 Admin에 등록 : user/admin.py
from django.contrib import admin
from .models import UserModel
admin.site.register(UserModel) # 직접 만든 UserModel을 Admin에 추가
6. 한걸음 더! 글쓰기(Tweet 모델) 생성하여 Admin에 넣어주기
6-1. Tweet 모델 구조 생성
# tweet/models.py
from django.db import models
from user.models import UserModel
class TweetModel(models.Model):
class Meta:
db_table = "tweet"
author = models.ForeignKey(UserModel, on_delete=models.CASCADE) # 이전에 생성한 UserModel의 값으로 지정한다.
content = models.CharField(max_length=256)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
6-2. 신규 모델을 DB에 인식
python manage.py makemigrations
python manage.py migrate
6-3. Admin에 추가 : tweet/admin.py
from django.contrib import admin
from .models import TweetModel
# Register your models here.
admin.site.register(TweetModel)
7. 추가내용 : admin리스트 내 오브젝트명을 입력한 값(author)으로 노출하고자 할 때
# tweet/models.py
from django.db import models
from user.models import UserModel
class TweetModel(models.Model):
class Meta:
db_table = "tweet"
# 추가 기입사항
def __str__(self):
return self.author
#-----
author = models.ForeignKey(UserModel, on_delete=models.CASCADE) # 이전에 생성한 UserModel의 값으로 지정한다.
content = models.CharField(max_length=256)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
※ 신규 모델을 생성하고 인식시킬 시 항상 서버를 꺼주도록 하자!
'Python > Django' 카테고리의 다른 글
| HTTP method == 'GET' , 'POST' (0) | 2022.05.31 |
|---|---|
| Django 분리된 파일을 이어보자. (0) | 2022.05.30 |
| Django의 템플릿 문법(html) (0) | 2022.05.30 |
| Django 프로젝트 구조를 구성하고 DB에 연결하자. (0) | 2022.05.27 |
| PYthon의 Django를 알아보자! (0) | 2022.05.26 |