**여기서 나오는 위젯이란 단어는 HTML 위젯을 의미함
숫자형필드
AutoField
SQL에서 auto-increment 속성을 지니는 필드입니다.
직접 사용해서 지정할일이 거의 없습니다.
왜냐하면, Django 는 테이블 생성시 auto-increment를 지닌 int타입 id칼럼을 자동으로 생성해주기때문입니다.
BigAutoField
1 ~ 9223372036854775807 범위를 보장하는 64비트 정수
BigIntegerField (기본위젯 NumberInput)
-9223372036854775808 ~ 9223372036854775807 범위를 보장하는 64비트 정수
PositiveBigIntegerField
0 ~ 9223372036854775807의 양수 타입
PositiveIntegerField
0 ~ 2147483647 의 양수 타입
PositiveSmallIntegerFeild
0 ~ 32767 의 양수타입
SmallAutoField
1 ~ 32767 만 지원하는 AutoField
SmallIntegerField
-32768 ~ 32767 를 지원하는 IntegerField
DecimalField
Decimal 인스턴스로 표시되는 고정밀 10진수입니다(보다 정확한 값을 필요로할때 사용하세요.
필수옵션 두가지
- max_digits - 숫자에 허용되는 최대 자릿수입니다 decimal_places 보다 크거나같아야 합니다
- decimal_places - 표기되는 소숫점 자릿수입니다.
FloatField (기본위젯 NumverInput)
float 인스턴스로 표현되는 부동 소숫점 숫자입니다.
IntegerField (기본위젯 TextInput)
-2147483648 ~ 2147483647 을지원하는 정수타입 입니다.
문자열 필드
CharField
SQL에서 varchar에 해당하는 값입니다.
사용가능 옵션
- max_length - 길이를 지정합니다 (필수지정값)
- CharField(max_length = 30) == varchar(30) 둘은 같은 값을 가집니다.
- db_collation
TextField
큰 텍스트 필드
UrlField
URL Validator에서 검증한 URL의 CharField입니다.
기본 max_length는 200입니다.
UUIDField
범용 고유 식별자를 저장하는 필드입니다. Python의 UUID 클래스를 사용합니다.
PostgreS 사용시 UUID데이터유형 그렇지 않으면 char(32)로 저장됩니다.
EmailField
EmailValidator를 이용해서 값이 유효한지 확인하는 CharField입니다.
max_length가 사용가능하며 최댓값은 254입니다.
날짜필드
DateField. (기본위젯 : DataInput)
datetime.date 인스턴스로 표시되는 날짜입니다
auto_now_add , auto_now , default 는 같이 쓸 수 없습니다.
사용가능옵션
- auto_now = (True or False)
- 개체를 저장할 때마다 필드를 지금으로 자동 생성합니다
- 'Model.save()'를 호출할 때만 자동으로 업데이트 됩니다.
- 'QuertSet.update()'와 같은 다른방법을 사용시 업데이트되지 않습니다.
- 값을 직접 입력할 수 없습니다.
- auto_now_add
- 개체를 처음만들때 필드를 지금으로 자동 생성합니다.
- 값을 직접 입력하려고 해도 무시됩니다.
위 두가지 옵션중 하나를 True로 설정하면
editable = False , blank=True 가 자동설정됩니다.
값을 수정하고싶으면 아래의 것들을 수정해야됩니다.
For DateField: default=date.today - from datetime.date.today()
For DateTimeField: default=timezone.now - from django.utils.timezone.now()
DatetimeField (기본위젯 : DateTime)
날짜,시간을 같이 가져오는 필드
DateField와 같은 옵션을 공유합니다.
TimeField
datetime.time instance의 시간값을 사용합니다.
그외 필드들
BooleanField (기본위젯 CheckboxInput )
기본 위젯은 CheckboxInput / null = True 인경우 NullBooleanSelect입니다. (default값은 None)
GenericIPAddressField(기본위젯 TextInput)
문자열 형식(예: 192.0.2.30 또는 2a02:42fe::4)의 IPv4 또는 IPv6 주소입니다
ipv6 주소는 정규화를 거치며 모든문자는 소문자로 반환됩니다.
사용가능한 옵션
- protocol -지정된 프로토콜로 제한합니다.
- 사용가능한 인수종류 (both(default) or IPv4 or IPv6) (대소문자를 구분하지 않습니다.)
- unpack_ipv4 - ::fff:192.0.2.1과 같은 IPv4 매핑 주소의 압축을 풉니다
- (위의 주소의 경우 192.0.2.1로 반환됩니다.)
- 프로토콜이 both인경우만 사용가능하며 default값은 false입니다.
ImageField (기본위젯 ClearbleFileInput)
사용하려면 Pillow 라이브러리가 필요합니다
FileField에서 모든 속성과 메서드를 상속받지만 업로드된 개체가 유효한 이미지인지도 확인합니다.
ImageField 인스턴스는 기본 최대 길이가 100자인 varchar 열로 데이터베이스에 생성됩니다.
다른 필드와 마찬가지로 max_length 인수를 사용하여 최대 길이를 변경할 수 있습니다.
FileField와 다른 속성
- height_field - 저장될때 마다 모델의 높이가 자동으로 입력됩니다.
- width_field - 저장될때 마다 모델의 넓이가 자동으로 입력됩니다.
JSONField
JSON 인코딩 데이터를 저장하기 위한 필드 입니다.
dictionaries, lists, strings, numbers, booleans and None 형식으로 저장됩니다.
지원하는 옵션
- encoder
- decoder
SlugField
슬러그(slug)는 문자, 숫자, 밑줄 또는 하이픈만을 포함하는 무언가의 짧은 레이블입니다. 일반적으로 URL에 사용됩니다.
Field.db_index를 True로 설정합니다.
지원하는 옵션
- max_length
- allow_unicode - False(default) or True
- True일시 ASCII문자 외에 유니코드 문자를 사용할 수 있습니다.
BinaryField
원시 이진 데이터를 저장할 필드입니다. 바이트, 티어레이 또는 메모리 보기를 통해 할당할 수 있습니다.
기본적으로 BinaryField는 편집 가능한 False로 설정되며 이 경우 ModelForm에 포함할 수 없습니다.
사용가능 옵션
- max_length = 바이트로 산정함
DurationField
FileField
FilePathFiled
'Python > Django' 카테고리의 다른 글
[Models] QuerySetAPI (0) | 2022.06.05 |
---|---|
[Models]외래키 Field 와 참조무결성 (0) | 2022.06.04 |
Project start(2) 프로젝트 기본셋팅 (0) | 2022.06.04 |
Project start(1) 미니콘다 설치 및 사용하기 (0) | 2022.06.04 |
가상환경이란? (0) | 2022.06.04 |