(Positive)IntegerField
-2147483648 ~ 2147483647 범위의 정수 값을 저장한다 (4 Bytes)
Min/MaxValueValidator를 사용하여 입력의 유효성을 검사한다. (-> Raises a ValidationError)
앞에 Positive를 붙이면 음수값 입력시 Value Error가 나고, 무조건 0부터 시작한다
(Positive)BigIntegerField
-9223372036854775808 ~ 9223372036854775807 범위의 정수 값을 저장한다 (8 bytes)
Positive를 붙이면 인티저 필드와 같은 현상이 발생한다
(Positive)SmallIntegerField
-32768 ~32767 범위의 정수값을 저장한다 (2 Bytes)
Positive를 붙이면 인티저 필드와 같은 현상이 발생한다
BigAutoField
IntegerField와 기본적으로 같으나, 1부터 자동으로 증가한다
DBMS에서 id 컬럼같은 곳에 설정하는 auto increment에 해당하는 필드다
3.2 이전 버전에선 AutoField 라고 했고
Big은 1부터 9223372036854775807
Small은 1부터 32767 까지다
DecimalField
filed_name = DecimalField(max_digits=5, decimal_places=3, coerce_to_string=True)
고정 소수점 이하의 십진수인 실수를 저장한다
옵션의 max_digits는 최대자릿수
decimal_places는 소수 자릿수를 각각 의미한다
표현식에 문자열 값을 반환해야 하는 경우 True로 설정해야 하고
Decimal 객체를 반환해야 하는 경우 False로 설정해야 한다
FloatField
부동소수점의 실수를 저장한다
지수형태로 표현되기 떄문에 아주 크거나 작은 숫자를 표현하기 적합하다
BooleanField
True / False 값을 저장하는 필드다.
mysql 기준 기본적으로 tinyint 타입과 매핑된다
True 나 False로 저장 되는 Boolean 보다 0이나 1로 저장되는 tinyint가 메모리적으로 더 유리하기 때문이다
디폴트값을 저장하지 않고 옵션을 생략하면 None이 디폴트값이 되기 때문에
default를 써주는 것이 데이터 정확성을 올려준다
'dev > django' 카테고리의 다른 글
| [django] Model - Field options (0) | 2022.03.07 |
|---|---|
| [django] models - modeling, migrate (0) | 2022.02.27 |
| [django] url 분리 (0) | 2022.02.14 |
| [django] Hello world (0) | 2022.02.13 |
| [django] 프로젝트 생성, 개발 서버 구동하고 접속하기 (0) | 2022.02.10 |