본문 바로가기

장고(DJango)

[Django] 장고 모델, 매개변수(Django Model FIelds and parameters)

장고 모델

AutoField

class AutoField(**options)

자동으로 증가하는 정수 필드, 보통 사용하지 않는다. 보통 id 필드는 pk로 자동으로 만들어 진다.

BigAutoField

class BigAutoField(**options)

AutoField 보다 비트수가 더 많다. 64 비트 정수.

BigIntegerField

class BigIntegerField(**options)

IntegerField 보다 큰 정수 필드 64 비트 정수.

BinaryField

class BinaryField(max_length=None, **options)

바이너리 데이터를 저장하는 필드. bytes, bytearray, memoryview 가 저장 될 수 있다.

BooleanField

class BooleanField(**options)

true/false 필드

CharField

class CharField(max_length=None, **options)

문자열 필드. 더 큰 문자열을 저장하고 싶다면 TextField를 사용하자.

DateField

class DateField(auto_now=False, auto_now_add=False, **options)

날짜 필드. 파이썬의 datetime.date instance를 표현한다.

DateTimeField

class DateTimeField(auto_now=False, auto_now_add=False, **options)

date, time 필드. 파이썬의 datetime.datetime instance를 표현한다.

DecimalField

class DecimalField(max_digits=None, decimal_places=None, **options)

10진수

DurationField

class DurationField(**options)

기간을 저장한다. 파이썬의 timedelta.

EmailField

class EmailField(max_length=254, **options)

e-mail 필드

FileField

class FileField(upload_to=None, max_length=100, **options)

file 필드. pk로 쓸 수 없다.

FloatField

class FloatField(**options)

실수 필드.

ImageField

class ImageField(upload_to=None, height_field=None, width_field=None, max_length=100, **options)

이미지 필드.

IntegerField

class IntegerField(**options)

정수 필드

GenericIPAddressField

class GenericIPAddressField(protocol='both', unpack_ipv4=False, **options)

ipv4, ipv6 저장하는 필드.

JSONField

class JSONField(encoder=None, decoder=None, **options)

장고 3.1 이후 생겨난 필드. JSON data를 저장하는 필드.

MariaDB 10.2.7+, MySQL 5.7.8+, Oracle, PostgreSQL, SQLite 지원

NullBooleanField

class NullBooleanField(**options)

null이 True인 true/false 필드.

PositiveIntegerField

class PositiveIntegerField(**options)

양수 32비트

PositiveSmallIntegerField

class PositiveSmallIntegerField(**options)

양수 16비트

SlugField

class SlugField(max_length=50, **options)

뉴스 용어, 어떤 짧은 라벨을 의미함.

SmallIntegerField

class SmallIntegerField(**options)

16비트 정수

TextField

class TextField(**options)

큰 문자열(텍스트) 필드

TimeField

class TimeField(auto_now=False, auto_now_add=False, **options)

시간 필드. 파이썬에서 datetime.time 으로 표현.

URLField

class URLField(max_length=200, **options)

url 저장 필드

UUIDField

class UUIDField(**options)

주로 쓰는 것들은 IntegerField, TextField, CharField, DatetimeField, BooleanField 등이 있다.

CharField 매개변수

max_length - 반드시 설정해 주어야 한다. 설정하지 않을 경우 에러 발생. CharFields must define a 'max_length' attribute.

ex) CharField(max_length=50)

IntegerFIeld

32비트 정수. 매개변수가 없어도 된다.

TextField

매우 큰 문자열 필드. 매개변수가 없어도 된다.

BooleanField

true/false 필드

default 매개변수가 정해지지 않은 경우 default 값은 None 이다.

DateField

두개의 필수 매개변수가 존재하지만, 둘다 기본적으로 False로 설정되어 있다.

auto_now - 데이터가 수정될 경우 수정 시간을 저장한다.

auto_now_add - 데이터가 추가된 경우 추가된 시간을 저장한다.

많이 쓰이는 매개변수

기본키 설정

primary_key=True

필드 최대 길이

max_length=50

기본 값 설정

default=아무거나