당신은 멋쟁이, 우리는 장고쟁이~

0%

Django Models 3편 - Fields (Field Types)

Fields


모델에서 가장 중요하고, 가장 요구되는 사항중 하나는.


모델에서 정의하는 데이터베이스 필드들의 리스트 입니다.


필드는 클래스 속성으로 정의되어 있습니다.


주의사항,

필드명은, clean, save, delete 와 같은 model API 와 충돌할수 있는 이름으로 지으면 안됩니다.



예시 코드는 아래와 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
from django.db import models 

class Musician(models.Model):
first_name = models.CharField(max_length=50) # Musician class 의 속성
last_name = models.CharField(max_length=50)
instrument = models.CharField(max_length=100)

class Album(models.Model):
artist = models.ForiengKey(Musician, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
release_date = models.DateField()
num_stars = models.IntegerField()


Field Types


각 모델안에 필드들은 적절한 필드클래스의 인스턴스여야 합니다.


Django 는 필드 클래스에 정의되어 있는 type 들을 사용해서 여러가자 사항들을 결정합니다.


  • INTEGER, VARCHAR, TEXT 같은 컬럼 타입을 결정하여, 데이터베이스가 어떤 종류의 데이터를 저장할건지 결정합니다
  • 폼 필드를 출력할때 어떤 기본 HTML 위젯을 사용할지 결정합니다
  • DJango 의 어드민과 자동 생성되는 폼에서 사용할 최소한의 검증사항들을 결정합니다.

Django 는 여러개의 내장 필드 타입들을 지원합니다. 필드타입의 리스트를 확인하고 싶다면, model field reference 문서를 확인하면 됩니다. Django 의 내장 필드타입으로 충분하지 않다면, 본인 스스로 커스텀 필드를 작성할수도 있습니다. wrting custom model fields 문서를 참조하면 됩니다.


마치며..


Django 에서 모델을 작성할때, models.py 안에 작성하는 클래스는 데이터베이스 테이블이 되고.


클래스 안의 속성들을 통해서 필드명과 데이터 타입을 정의할수 있습니다.