brunch

매거진 Django doc

You can make anything
by writing

C.S.Lewis

by 장영석 Aug 27. 2018

Django Model - Field API

Field attribute reference

Field attribute reference

모든 Field 인스턴스는 행동을 introspection이 가능한 여러 개의 속성을 포함한다. 필드의 기능에 따라 작성되야할 코드가 있을 때 isinstance 체크 대신에 introspection 속성들을 사용해라. 이러한 속성들을 Model._meta API를 함께 사용해 특정 필트 유형의 검색 범위를  좁힐 수 있다.


Attributes for fields


Field.auto_created

모델 상속에 사용되는 OneToOneField 같이 이 필드가 자동으로 생성되었음을 나타내는 Boolean 플래그다.


Field.concreate

이 필드가 연결된 데이터베이스 칼럼이 있음을 나타내는 Boolean 플래그다.


Field.hidden

이 필드가 뒤에서 다른 non-hidden 필드의 기능으로 사용됨을 나타내는 Boolean 플래그다 (예. GenericForeignKey를 구성하는 content_typeobject_id 필드). 모델에 공개된 부분과 모든 필드를 구분하기 위해 hidden 플래그를 사용된다.


Options.get_fields()는 기본적으로 hidden 필드를 제외한다. 결과에 hidden 필드를 반환하기 위해서는 include_hidden=True를 전달해라.


Field.is_relation

필드가 기능을 위해 하나 이상의 다른 모델의 참조를 포함하고 있음을 나타내는 Boolean 플래그다 (예, ForeignKey, ManyToManyField, OneToOneField, 기타 등등).


Field.model

이 필드가 정의된 모델을 반환한다. 모델의 superclass에 필드가 정의되어 있다면, model은 인스턴스의 클래스가 아닌 superclass를 제공한다.



Attributes for fields with relations


이 속성들은 카디널리티와 관계의 기타 세부사항을 쿼리 하는 데 사용된다. 이 속성들은 모든 필드에 있지만, 필드가 관계 유형 (Field.is_relation=True) 일 경우에만 boolean (None이 아닌) 값을 갖는다.


Field.many_to_many

필드가 다대다 관계일 때 True고 아닌 경우 False인 Boolen 플래그다. Django에서 True값인 유일한 필드는 ManyToManyField이다.


Field.many_to_one

ForeignKey 같이 필드가 다대일 관계일 때 True이고 아닐 경우 False인 Boolean 플래그다.


Field.one_to_many

GenericRelation 이거나 ForeignKey의 역참조일 때처럼 필드가 일대다 관계일 때 True이고 아닐 경우 False인 Boolean 플래그다.


Field.one_to_one

OneToOneField같이 필드가 일대일 관계일 때 True이고 아닐 경우 False인 Boolean 플래그다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari