수색…


매개 변수

매개 변수 세부
없는 true의 경우, 하늘의 값이 데이타베이스에 null 로서 포함됩니다.
공백 true 인 경우 필드는 양식에 필요하지 않습니다. 필드를 비워두면 Django는 기본 필드 값을 사용합니다.
선택 이 필드의 선택 사항으로 사용되는 2 요소 iterables의 반복 가능 설정하면 필드가 관리자의 드롭 다운으로 렌더링됩니다. [('m', 'Male'),('f','Female'),('z','Prefer Not to Disclose')] . 옵션을 그룹화하려면 [('Video Source',((1,'YouTube'),(2,'Facebook')),('Audio Source',((3, 'Soundcloud'),(4, 'Spotify'))]
db_column 기본적으로 django는 데이터베이스 열의 필드 이름을 사용합니다. 이것을 사용하여 사용자 정의 이름을 제공하십시오.
db_index True 이면 데이터베이스의이 필드에 색인이 생성됩니다.
db_tablespace 이 필드의 색인에 사용할 테이블 공간. 이 필드는 데이터베이스 엔진이 지원하는 경우에만 사용되며, 그렇지 않으면 무시 됩니다.
태만 이 필드의 기본값입니다. 값 또는 호출 가능 객체가 될 수 있습니다. 변경할 수있는 기본값 (목록, 집합, 사전)의 경우 호출 가능 함수를 사용해야합니다 . 마이그레이션과의 호환성 때문에 람다를 사용할 수 없습니다.
편집 가능한 False 인 경우 모델 관리자 또는 ModelForm 에 필드가 표시되지 않습니다. 기본값은 True 입니다.
error_messages 이 필드에 표시된 기본 오류 메시지를 사용자 정의하는 데 사용됩니다. 값은 사전을 나타내며 키는 오류를 나타내고 값은 메시지입니다. 오류 메시지에 대한 기본 키는 null , blank , invalid , invalid_choice , uniqueunique_for_date . 추가 오류 메시지는 사용자 정의 필드에 의해 정의 될 수 있습니다.
help_text 사용자를 돕기 위해 필드와 함께 표시 할 텍스트입니다. HTML이 허용됩니다.
on_delete ForeignKey가 참조하는 객체가 삭제되면 Django는 on_delete 인수에 지정된 SQL 제약 조건의 동작을 에뮬레이션합니다. 이것은 ForeignKeyOneToOneField 필드에 대한 두 번째 위치 인수입니다. 다른 필드에는이 인수가 없습니다.
primary_key True 이면이 필드가 기본 키가됩니다. Django는 기본 키를 자동으로 추가합니다. 따라서 사용자 정의 기본 키를 작성하려는 경우에만 필요합니다. 모델 당 하나의 기본 키만 가질 수 있습니다.
독특한 True 이면이 필드에 중복 값을 입력하면 오류가 발생합니다. 이는 사용자 인터페이스 블록이 아닌 데이터베이스 수준의 제한 사항입니다.
unique_for_date 값을 DateField 또는 DateTimeField 로 설정하면 같은 날짜 또는 날짜 시간에 값이 중복되면 오류가 발생합니다.
unique_for_month unique_for_date 와 비슷 unique_for_date , 해당 달에 대한 점검은 제한됩니다.
unique_for_year unique_for_date 와 유사하지만 수표는 연도로 제한됩니다.
verbose_name django가 여러 장소에서 사용하는 필드의 친숙한 이름 (예 : 관리자 및 모델 양식의 레이블 만들기).
검사기 이 필드의 validator의리 스트.

비고

  • 필요한 경우 자신의 필드를 작성할 수 있습니다.
  • 기본 모델 클래스의 함수, 가장 일반적으로 save() 함수를 재정의 할 수 있습니다.

숫자 필드

숫자 필드의 예는 다음과 같습니다.

자동 입력란

기본 키에 일반적으로 사용되는 자동 증가 정수입니다.

from django.db import models

class MyModel(models.Model):
    pk = models.AutoField()

각 모델은 기본적으로 기본 키 필드 ( id )를 가져옵니다. 따라서 기본 키 용도로 모델에서 id 필드를 복제 할 필요는 없습니다.


BigIntegerField

-9223372036854775808 에서 9223372036854775807 ( 8 Bytes ) 사이의 정수 피팅 번호.

from django.db import models

class MyModel(models.Model):
    number_of_seconds = models.BigIntegerField()

IntegerField

IntegerField는 -2147483648에서 2147483647 ( 4 Bytes )까지 정수 값을 저장하는 데 사용됩니다.

from django.db import models

class Food(models.Model):
    name = models.CharField(max_length=255)
    calorie = models.IntegerField(default=0)

default 매개 변수는 필수는 아닙니다. 그러나 기본값을 설정하는 것이 좋습니다.


PositiveIntegerField

IntegerField와 같으나 양수 또는 0이어야합니다. PositiveIntegerField는 0에서 2147483647 ( 4 Bytes )까지의 정수 값을 저장하는 데 사용됩니다. 이것은 의미 론적으로 긍정적 인 분야에서 유용 할 수 있습니다. 예를 들어 칼로리가있는 음식을 기록하는 경우 음수가되어서는 안됩니다. 이 필드는 유효성 검사를 통해 음수 값을 방지합니다.

from django.db import models

class Food(models.Model):
    name = models.CharField(max_length=255)
    calorie = models.PositiveIntegerField(default=0)

default 매개 변수는 필수는 아닙니다. 그러나 기본값을 설정하는 것이 좋습니다.


SmallIntegerField

SmallIntegerField는 -32768에서 32767 ( 2 Bytes )까지의 정수 값을 저장하는 데 사용됩니다. 이 필드는 극한 값이 아닌 값에 유용합니다.

from django.db import models

class Place(models.Model):
    name = models.CharField(max_length=255)
    temperature = models.SmallIntegerField(null=True)

PositiveSmallIntegerField

SmallIntegerField는 0에서 32767 ( 2 Bytes )까지의 정수 값을 저장하는 데 사용됩니다. SmallIntegerField와 마찬가지로이 필드는 값이 높지 않고 의미 상 긍정적 인 값에 유용합니다. 예를 들어 음수 일 수없는 나이를 저장할 수 있습니다.

from django.db import models

class Staff(models.Model):
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    age = models.PositiveSmallIntegerField(null=True)

PositiveSmallIntegerField는 선택에 유용하지만 Enum을 구현하는 장고체 방식입니다.

from django.db import models
from django.utils.translation import gettext as _

APPLICATION_NEW = 1
APPLICATION_RECEIVED = 2
APPLICATION_APPROVED = 3
APPLICATION_REJECTED = 4

APLICATION_CHOICES = (
    (APPLICATION_NEW, _('New')),
    (APPLICATION_RECEIVED, _('Received')),
    (APPLICATION_APPROVED, _('Approved')),
    (APPLICATION_REJECTED, _('Rejected')),
)

class JobApplication(models.Model):
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    status = models.PositiveSmallIntegerField(
        choices=APLICATION_CHOICES, 
        default=APPLICATION_NEW
    )
    ...

상황에 따라 클래스 변수 나 모듈 변수로 선택을 정의하는 것이 좋은 방법입니다. 선택 사항이 친숙한 이름없이 필드에 전달되면 혼란이 야기됩니다.


DecimalField

고정 소수점 이하의 십진수로 파이썬에서 Decimal 인스턴스로 나타냅니다. IntegerField 및 파생 상품과 달리이 필드에는 2 개의 필수 인수가 있습니다.

  1. DecimalField.max_digits : 숫자에 허용되는 최대 자릿수입니다. 이 수는 decimal_places보다 크거나 같아야합니다.
  2. DecimalField.decimal_places : 숫자와 함께 저장하는 소수 자릿수입니다.

소수점 이하 3 자리수의 숫자를 99 개까지 저장하려면 max_digits=5decimal_places=3 사용해야합니다.

class Place(models.Model):
    name = models.CharField(max_length=255)
    atmospheric_pressure = models.DecimalField(max_digits=5, decimal_places=3)

BinaryField

이것은 바이너리 데이터를 저장하는 데 사용되는 특수 필드입니다. 바이트 만 허용 합니다 . 데이터는 저장시 serialize됩니다.

바이너리 데이터를 저장하므로이 필드는 필터에서 사용할 수 없습니다.

from django.db import models

class MyModel(models.Model):
    my_binary_data = models.BinaryField()

CharField

CharField는 정의 된 텍스트 길이를 저장하는 데 사용됩니다. 아래 예제에서 128 자까지의 텍스트를 필드에 저장할 수 있습니다. 이보다 긴 문자열을 입력하면 유효성 검사 오류가 발생합니다.

from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=128, blank=True)

DateTimeField

DateTimeField는 날짜 시간 값을 저장하는 데 사용됩니다.

class MyModel(models.Model):
    start_time = models.DateFimeField(null=True, blank=True)
    created_on = models.DateTimeField(auto_now_add=True)
    updated_on = models.DateTimeField(auto_now=True)

DateTimeField 에는 두 개의 선택적 매개 변수가 있습니다.

  • auto_now_add 는 객체가 생성 될 때 필드의 값을 현재 datetime으로 설정합니다.

  • auto_now 는 필드가 저장 될 때마다 필드의 값을 현재 날짜 시간으로 설정합니다.

이 옵션과 default 매개 변수는 함께 사용할 수 없습니다.

외래 키

ForeignKey 필드는 모델간에 다 many-to-one 관계를 만드는 데 사용됩니다. 다른 분야의 대부분은 위치 인수가 필요하지 않습니다. 다음 예제에서는 자동차와 소유자 관계를 보여줍니다.

from django.db import models

class Person(models.Model):
    GENDER_FEMALE = 'F'
    GENDER_MALE = 'M'

    GENDER_CHOICES = (
        (GENDER_FEMALE, 'Female'),
        (GENDER_MALE, 'Male'),
    )

    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
    age = models.SmallIntegerField()


class Car(model.Model)
    owner = models.ForeignKey('Person')
    plate = models.CharField(max_length=15)
    brand = models.CharField(max_length=50)
    model = models.CharField(max_length=50)
    color = models.CharField(max_length=50)

필드의 첫 번째 인수는 모델이 관련된 클래스입니다. 두 번째 위치 인수는 on_delete 인수입니다. 현재 버전에서이 인수는 필요하지 않지만 Django 2.0에서 필요합니다. 인수의 기본 기능은 다음과 같습니다.

class Car(model.Model)
    owner = models.ForeignKey('Person', on_delete=models.CASCADE)
    ...

이렇게하면 소유자가 Person 모델에서 삭제 될 때 Car 객체가 모델에서 삭제됩니다. 이것이 기본 기능입니다.

class Car(model.Model)
    owner = models.ForeignKey('Person', on_delete=models.PROTECT)
    ...

이렇게하면 하나 이상의 Car 객체와 관련된 Person 객체가 삭제되지 않습니다. Person 객체를 참조하는 Car 객체는 모두 먼저 삭제해야합니다. 그런 다음 Person 객체를 삭제할 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow