본문 바로가기

반응형

django

(25)
[Django] 다대다 관계에서 through, through_fields, through_defaults through와 through_fields와 through_default에 대한 정리1. through다대다 관계를 나타낼 때, custom 한 중개모델을 지정할 때 사용한다.xxxxxxxxxxfrom django.db import models​​class Person(models.Model): name = models.CharField(max_length=128)​ def __str__(self): return self.name​ class Meta: db_table = "person"​​class Group(models.Model): name = models.CharField(max_length=128) members = models.ManyToManyField( Person, through="Mem..
[Django] 다대다 관계의 모델을 직접 활용해 보자 다대다 관계의 모델을 직접 활용해보자1. 다대다 관계에서 모델 인스턴스 생성하기1.객체 생성 후 save() 하기xxxxxxxxxxIn [4]: person = Person.objects.create(name='권태형')INSERT INTO "person" ("name")VALUES ('권태형')​Execution time: 0.002013s [Database: default]​In [5]: python_group = Group.objects.create(name='파이썬모임')INSERT INTO "group" ("name")VALUES ('파이썬모임')​Execution time: 0.002968s [Database: default]​In [6]: vegeterian_group = Group.obje..
[Django] 다대다 관계에서 중개 모델의 제한 사항 중개 모델의 제한 사항문서에서 제시한 제한사항은 아래와 같다.1.중개 모델은 소스 모델(Group)에 대해서 무조건 딱 1개의 외래키를 포함해야한다.2.중개 모델이 소스 모델(Group)에 대해서 2개 이상의 외래키를 포함할 경우, ManyToManyField.through_fields를 사용하여 장고가 관계에 사용해야하는 외래 키를 명시적으로 지정해야 한다 3.타겟 모델(Person)에 대해서도 동일하게 1,2번이 적용된다. 1번은 아래와 같은 경우를 나타낸다.xxxxxxxxxxfrom django.db import models​class Person(models.Model): name = models.CharField(max_length=128)​ def __str__(self): return sel..
[해설과 함께 읽는 Django 문서] Models - 다 대 다 관계 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.다대다 관계Many-to-many 관계를 정의하기 위해서 ManyToManyField 를 사용해야한다. 당신은 다른 Field type을 사용했던 것처럼 사용할 수 있다:당신의 모델의 클래스 속성으로 포함하는 방법으로 사용가능하다ManyToManyField 는 positional argument를 요구한다:모델과 관련된 클래스예를들면, 만약 Pizza 가 여러개의 Topping 객체를 가지고 있다면,- 즉, 1개의 Topping 은 여러개의 피자에 올 수 있고, 각각의 피자는 여러개의 Topping 을 가질 수 있다- 아래와 같이 표현할 수 있다.xxxxxxxxxxfrom django.db impo..
[해설과 함께 읽는 Django 문서] Models - 다 대 일 관계 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.다 대 일 관계다 대 일 관계를 정의하기 위해서는 django.db.models.ForeignKey 를 사용해야한다. 당신은 다른 Field type을 사용했던 것처럼 사용할 수 있다:당신의 모델의 클래스 속성으로 포함하는 방법으로 사용가능하다외래키는 positional argument를 요구한다.:모델과 관련된 클래스예를 들면, 만약에 Car 모델이 Manufacturer 를 가지고 있다면 -즉, Manufacturer 가 여러개의 자동차를 만들 수 있으나 각각의 Car 는 오직 1개의 Manufacturer 를 가진다- 아래와 같이 정의할 수 있다.xfrom django.db import mod..
[해설과 함께 읽는 Django 문서] Models - Verbose Field 이름 원문 링크한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.Verbose field 이름ForeignKey, ManyToManyField, OneToOneField 를 제외하면, 각각 필드 타입은 선택적인 첫번째 positional argument를 취한다. - 이를 verbose name 이라고 한다. 만약 verbose name이 주어지지 않으면, 장고는 자동으로 field의 속성이름을 사용하여서 underscore들을 space로 바꾸면서 자동으로 생성할 것이다.아래 예제를 보면, verbose name은 person's first name 이다:xxxxxxxxxxfirst_name = models.CharField("persons's firs..
[해설과 함께 읽는 Django 문서] Models - Automatic primary key 필드 Automatic primary key 필드기본적으로 장고는 각각 모델에 아래 필드를 준다.xxxxxxxxxxid = models.AutoField(primary_key=True)이것은 자동 증가하는 primary key 이다.만약 당신이 custom primary key 설정을 원한다면, primary=True 를 당신의 필드에 설정해주어야 한다만약 장고가 명시적으로 Field.primary_key 를 당신이 세팅한 것을 알게된다면, 이것은 자동으로 생성되는 id 컬럼을 추가하지 않을 것이다.각각 모델은 primary_key=True 를 가진 필드가 정확하게 1개 이길 요구한다.(명시적으로 선언 하거나, 자동적으로 생성되거나 둘중에 하나)내 마음대로 해설위의 내용은 간단하다 1.각 모델 마다 pk는 자..
[해설과 함께 읽는 Django 문서] Models - 필드옵션 필드 옵션각각의 필드는 특정 필드 별 argument 집합을 사용한다. 예를들면 CharField 는 max_lengthargument를 요구한다 - max_length는 데이터를 저장하는데 사용되는 VARCHAR 데이터베이스 필드의 크기를 지정하는 argument이다.모든 필드 타입에 공통적으로 이용가능한 argument 집합이 있다. 모든 것은 선택적이다. 레퍼런스에서 전부 설명되어있다. 여기서는 가장 자주 많이 쓰이는 것을 요약한다null만약에 True 이면, 장고는 db 상에서 NULL을 빈 값으로써 저장할 것이다. 기본값은 False 이다blank만약에 True 이면, 이 필드는 블랭크가 되는 것이 허락된다. 기본 값은 False 이다.알아 두어야 할 점은 null과는 다르다는 것이다. null..

반응형