Field options


Field options

- - -
null blank choices
db_column db_index db_tablespace
default editable error_messages
unique_for_date unique_for_month unique_for_year
verbose_name validators -

Field options 은 모든 필드 타입에 선택적으로 적용할 수 있습니다.

null

Field.null

True이면 장고는 데이터베이스에 빈 값을 NULL로 채워넣습니다. 기본값은 False로 설정되어 있습니다.

CharField(Character Field, Character = 문자)나 TextField 같이 문자열을 기반으로 하는 필드에는 null을 사용하는 것을 피해야 합니다. 빈 문자열의 값은 언제나 비어있는 문자열 그 자체이지, NULL이 아니기 때문입니다. 문자열을 기반으로 하는 필드가 null=True라는 값을 가진다면, 아마도 "no dat":NULL 이거나, 비어있는 문자열일 것입니다.

만약 null 파라미터(=매개변수)가 데이터베이스 저장소에만 영향을 미치도록 하면서 forms 안에 비어있는 값을 주고 싶다면, 문자열 기반의 필드와 그렇지 않은 필드 모두 blank=True라는 설정을 해두어야 합니다. blank 설명서를 참고하세요.

BooleanField에 null 값을 적용하고 싶다면, BooleanField 대신 NullBooleanField를 사용합니다.

blank

Field.blank

True이면 필드가 비어있는 것을 허용합니다. 기본값은 False입니다.

blank는 null과 다릅니다. null은 오직 데이터베이스에만 관련이 있고, blank는 검증과 관련이 있습니다. 필드가 blank=True 라면, form validation이 비어있는 엔트리를 허용합니다. blank=False 인 경우, 비어있으면 안됩니다.

choices

Field.choices

정확히 두개의 요소로 이뤄진 iterables로 구성된 하나의 iterable(e.g., a list or tuple)을 필드의 선택으로 사용합니다.

만약 이 필드가 주어지면, 기존의 form 위젯은 기본적인 text field대신 이것을 선택할 것입니다.

각 튜플의 첫번째 요소는 모델에 설정된 실질적인 값이며, 두번째 요소는 사람이 읽을 수 있는 이름입니다. 예를 들어,

YEAR_IN_SCHOOL_CHOICES = (
  ('FR', 'Freshman'),
  ('SO', 'Sophomore'),
  ('JR', 'Junior'),
  ('SR', 'Senior'),
)

일반적으로, 모델 클래스 안에 초이스 필드를 정의하는 것이 가장 좋습니다. 그리고 적절한 이름을 가진 constnat를 각 값에 정의해야 합니다.

from django.db import models

class Student(models.Model):
  FRESHMAN = 'FR'
  SOPHOMORE = 'SO;
  JUNIOR = 'JR'
  SENIOR = 'SR'
  YEAR_IN_SCHOOL_CHOICES = (
    (FRESHMAN, 'Freshman'),
    (SOPHOMORE, 'Sophomore'),
    (JUNIOR, 'Junior'),
    (SENIOR, 'Senior'),
  )
  Year_in_school = models.CharField(
    max_length=2,
    choices=YEAR_IN_SCHOOL_CHOICES,
    default=FRESHMAN,
  )

  def is_upperclass(self):
    return self.year_in_school in (self.JUNIOR,self.SENIOR)

results matching ""

    No results matching ""