"4. 실습. 장고 모델 이해하기"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
잔글 (Sam님이 2-1. 실습. 장고 모델 이해하기 문서를 3. 실습. 장고 모델 이해하기 문서로 이동했습니다)
잔글 (Sam님이 3. 실습. 장고 모델 이해하기 문서를 4. 실습. 장고 모델 이해하기 문서로 이동했습니다)
 
(차이 없음)

2021년 5월 11일 (화) 20:08 기준 최신판

1 모델 정의[편집 | 원본 편집]

앱 안의 models.py에 넣어주면 된다.

class test(models.Model):  # 이게 하나의 테이블이 된다.
    name = models.CharField(max_length=10)

2 관리자페이지 등록[편집 | 원본 편집]

앱 안의 admin.py를 수정해준다. 다음의 내용을 추가해준다.

from testapp.models import *

admin.site.register(test)

3 DB에 반영[편집 | 원본 편집]

다음의 두 명령을 차례대로 기입한다.

python manage.py makemigrations

python manage.py migrate

4 객체 표시명 바꾸기[편집 | 원본 편집]

기존 모델 안에 다음과 같이 메서드를 정의한다.

class test(models.Model):  # 이게 하나의 테이블이 된다.
    name = models.CharField(max_length=10)

    def __str__(self):
        return self.name  # 객체의 속성 중 name를 반환하여 보여준다.

5 필드 추가해보기[편집 | 원본 편집]

models.py를 다음과 같이 고쳐보자.

class test(models.Model):  # 이게 하나의 테이블이 된다.
    name = models.CharField(max_length=10)
    age = models.IntegerField()

    def __str__(self):
        return self.name  # 객체의 속성 중 name를 반환하여 보여준다.

이걸 반여하기 위해선 다음의 두 명령을 차례로 기입해주어야 한다.

python manage.py makemigrations

python manage.py migrate

6 필드에 제약조건 걸어보기[편집 | 원본 편집]

다음과 같이 제약조건을 걸면 입력을 하지 않아도 객체를 저장할 수 있다.

class test(models.Model):  # 이게 하나의 테이블이 된다.
    name = models.CharField(max_length=10)
    age = models.IntegerField(null=True, blank=True)

    def __str__(self):
        return self.name  # 객체의 속성 중 name를 반환하여 보여준다.

DB의 속성을 손대는 것이기 때문에 다음의 두 명령을 차례로 기입해주어야 한다.

python manage.py makemigrations

python manage.py migrate