Today Sangmin Learned
article thumbnail
Published 2021. 7. 21. 13:47
[Django] Model & Admin Django
728x90

1. 새로운 프로젝트 생성하기 (가상환경 켜고)

(venv) sangminpark@Sangminui-MacBookPro-16 Django % django-admin startproject crud2

2. blog 앱 만들기

(venv) sangminpark@Sangminui-MacBookPro-16 Django % cd crud2
(venv) sangminpark@Sangminui-MacBookPro-16 crud2 % python manage.py startapp blog

3. crud2 폴더 내부 settings.py - INSTALLED_APPS에 'blog' 삽입하기, TIME_ZONE에 'Asia/Seoul'으로 바꿔주기

  -> 후자를 하는 이유는, 기본적으로 시간이 KST에 맞춰져 있지 않기 때문이다.

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog'
]
..
TIME_ZONE = 'Asia/Seoul'

4. blog > models.py에서 모델 정의하기

from django.db import models

# Create your models here.
class Blog(models.Model):
    title = models.CharField(max_length=200)
    writer = models.CharField(max_length=10)
    pub_date = models.DateTimeField()
    body = models.TextField()
    
    def __str__(self):
    	return self.title

CharField는 max_length를 무조건 수반하고, TextField는 필요없다. __str__이 들어가는 이유는, 제목을 객체 형태가 아니라 실제 글을 작성할 때 썼던 제목(title)으로 보여주기 위함이다.

 

5. models.py를 수정했으므로 아래 명령어를 터미널에서 실행한다.

(venv) sangminpark@Sangminui-MacBookPro-16 crud2 % python manage.py makemigrations
(venv) sangminpark@Sangminui-MacBookPro-16 crud2 % python manage.py migrate

6. admin에 로그인 할 superuser를 만든다.

(venv) sangminpark@Sangminui-MacBookPro-16 crud2 % python manage.py createsuperuser
Username (leave blank to use 'sangminpark'): 
Email address: 
Password: 
Password (again): 
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

짧아도 그냥 쓸 수 있다. email address는 안넣어도 된다.

 

7. 서버를 켜고 127.0.0.1:8000/admin에 들어간다. 그럼 아래와 같은 모습이 나온다.

python manage.py runserver

우리가 models.py에서 만들어준 blog가 없다.

 

8. 여기에 blog를 추가하기 위해 crud2/blog/admin.py에 model을 등록해준다. admin에게 우리가 model을 만들었음을 알려주는 과정이다.

from django.contrib import admin
from .models import Blog

# Register your models here.
admin.site.register(Blog)

이렇게 글을 작성해주면,

이렇게 떠야 정상이다.

'Django' 카테고리의 다른 글

[Django] Template 상속, 앱 분리, Static  (0) 2021.07.22
[Django] CRUD - U, D  (0) 2021.07.22
[Django] CRUD - R, C  (0) 2021.07.21
profile

Today Sangmin Learned

@steadily-worked

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!