[django]장고 model (2)

전상욱·2021년 5월 12일
0

Django

목록 보기
3/5
post-thumbnail

공부하면서 봤던 내용

일반적인 필드인수 정리.

  • verbose_name : 필드 라벨 안에서 사용되는 인간이 읽을 수 있는 필드 이름입니다. 지정되지 않으면, 장고가 기본 verbose_name 을 필드 이름으로 유추합니다.

  • default: 필드를 위한 기본값입니다. 이것은 값 또는 호출 가능한 객체일 수 있습니다. 이때 객체는 새로운 레코드가 생성될 때 마다 호출됩니다.

  • null: 만약 True라면, 장고는 빈 NULL 값을 필드를 위한 데이터베이스에 저장할 것입니다(CharField는 대신 빈 문자열을 저장할 것입니다). 기본값은 False입니다.

  • blank: 만약 True라면, 필드는 양식(form) 안에서 비워두는 것이 허락됩니다. 기본값은 False이며, 이것은 장고의 양식(form) 검증이 값을 입력하도록 강제한다는 뜻입니다. 이것은 종종 null=True와 함께 사용됩니다. blank 값을 허락할 때, 데이터베이스에서도 공백값을 적절하게 표시할 수 있어야 하기 때문입니다.

  • choices: 필드를 위한 선택들의 모임입니다. 이 인수가 제공된다면, 대응하는 기본 양식(form) 위젯은 표준 텍스트 필드가 아닌 이 선택 항목을 가진 선택 상자입니다.

  • primary_key: 만약 True라면, 현재 필드를 모델의 primary key로 설정합니다(primary key는 모든 다른 테이블 레코드들을 고유하게 확인하도록 지정된 특별한 데이터베이스 열입니다). primary key로 지정된 필드가 없다면 장고가 자동적으로 이 목적의 필드를 추가합니다.

일반적인 필드 타임

  • CharField: 작거나 중간 크기의 고정된 길이의 문자열을 정의할 때 사용합니다. 저장되기 위해서는 데이터의 최대 길이(max_length)를 정해주어야 합니다.

  • TextField :임의의 긴 문자열에 사용됩니다. 필드의 최대 길이(max_length)를 지정해야 할 수도 있지만, 그것은 필드가 양식(form) 안에 표시될 때만 지정하면 됩니다(데이터베이스 레벨에서 강제되지 않습니다).

  • IntegerField:정수값(모든 숫자)을 저장하는 필드입니다. 그리고 양식(form)에 입력된 값이 정수임을 검증하기도 합니다.

  • DateField와 DateTimeField는 날짜와 날짜시간 정보를 저장, 표현하는데 사용됩니다 (각각 파이썬 datetime.date와 datetime.datetime 객체로). 이 필드들은 추가적으로 (서로 독점적인) auto_now=True (모델이 저장될 때 마다 필드를 현재 날짜로 설정하기 위해), auto_now_add (모델이 처음 생성되었을 때만 날짜를 설정하기 위해) , 그리고 default (사용자에 의해 변경될 수 있는 기본 날짜를 설정하기 위해) 매개 변수를 선언할 수 있습니다.

  • EmailField는 이메일 주소를 저장하고 검증하기 위해 사용합니다.
    FileField와 ImageField는 각각 파일과 이미지를 업로드하기 위해 사용됩니다 (ImageField는 단지 업로드된 파일이 이미지임을 확인하는 추가 검증을 더할 뿐입니다). 이것들은 업로드된 파일들이 어디에 어떻게 저장되는지 정의하는 매개 변수를 가집니다.

  • AutoField는 자동적으로 증가하는 IntegerField의 특별한 타입입니다. 이 타입의 primary key는 명시적으로 지정하지 않는 이상 모델에 자동적으로 추가됩니다.

  • ForeignKey는 다른 데이터베이스 모델과 일대다 관계를 지정하기 위해 사용됩니다 (예시: 차는 하나의 제조사를 갖고 있지만 제조사는 많은 차들을 만들 수 있습니다). 일대다에서 "일"쪽이 key를 포함하는 모델입니다.

  • ManyToManyField는 다대다 관계를 지정하기 위해 사용됩니다 (예시: 책은 여러 장르를 가질 수 있고, 각각의 장르에도 많은 책들이 있습니다). 우리 예제인 도서관 어플리케이션에서는 이 필드를 ForeignKeys와 매우 유사하게 사용할 겁니다. 하지만 그룹 사이의 관계를 보여주기 위해서는 더욱 복잡한 방식으로 사용될 수 있습니다. 이것은 레코드가 삭제됐을 때 어떤 일이 일어나는지 정의하기 위해 on_delete 매개변수를 가집니다 (예시: models.SET_NULL의 값은 단순히 NULL값으로 설정될 겁니다).

출처) https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Models


model를 정의하면서 여러번 바꼈고, 실습하고 있는 모델이다

profile
someone's opinion of you does not have to become your reality

0개의 댓글