개발/파이썬
djangogirls | 4. 모델, 모델을 위한 테이블, admin
연별(YeonStar)
2020. 10. 29. 01:13
블로그 글 모델 만들기
#blog/models.py
from django.conf import settings
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
- 모델의 필드 정의하는 방법: https://docs.djangoproject.com/en/2.0/ref/models/fields/#field-types
- 장고 모델은 속성(변수)과 메소드(행위)를 정의할 수 있음.
- 장고 모델은 클래스로 생성함.
- 클래스 인자를 models.Model로 장고 모델임을 알려줌.
모델을 위한 테이블 만들기
#command-line
(myvenv) ~/mysite$ python manage.py makemigrations blog
- 장고에게 변경된 사항(모델을 생성함)을 알려줌
#command-line
(myvenv) ~/mysite$ python manage.py migrate blog
- 생성된 모델로 데이블을 만듬
관리자 화면
#blog/admin.py
from django.contrib import admin
from .models import Post
admin.site.register(Post)
- Post 모델을 가져옴
- 관리자에서 볼 수 있도록 모델을 등록함
- 장고 관리자: https://docs.djangoproject.com/en/2.0/ref/contrib/admin/
슈퍼 사용자 생성
#command-line
(myvenv) ~/mysite$ python manage.py createsuperuser
Username: admin
Email address: admin@admin.com
Password:
Password (again):
- 생성된 모델로 데이블을 만듬