2010-02-10 2 views
0

2 모델이 있고 클래스 2의 클래스 1에있는 모든 인스턴스는 어떻게 장고 모델에서 할 수 있습니까? 그리고 manytomany 필드를 사용해 보았습니다. 문제는 새로운 개체를 추가 할 때입니다. 그곳에는 이미 많은 분야가 있습니다. (나는 그다지 원하지 않습니다.) 어떤 생각 이죠 ...1 대 다수 관계

답변

1

다른 방향으로는 일대일 관계가 ForeignKey입니다.

+0

하지만 클래스 2의 클래스 1을 여러 인스턴스로 갖고 싶습니다. 외래 키를 사용할 수 없습니다 !! – ramsin

+0

예, 그렇습니다. 'ForeignKey'를'Model1'에서'Model2'로 만듭니다. Model2는 관리자 인'model1_set'이라는 속성을 얻습니다. –

+0

u는 내가 혼란 오전 예를 적어주세요 수 있습니다 .... 내가 클래스 1 이름이 = models.Char ..... 클래스 2 MOD1 = models.Foregign ........ ... 여기 mod1의 여러 인스턴스가 필요합니다. 어떻게해야합니까? – ramsin

0

관계가 관계형 데이터베이스에서 오브젝트에있는 것에서 다소 뒤로 향하는 것이 문제가되는 한 가지 이유입니다. class2의 한 인스턴스에 class1 목록이 포함되도록하려는 것 같습니다. 그렇게하는 것은 class2를 참조하는 class1에 ForeignKey를 갖는 것입니다. 관계형 데이터베이스에 익숙하지 않은 경우 class2가 class1을 참조해야하는 것처럼 보일 수 있지만 관계형 세계에서는 일대 다급을 가질 때 많은 것을 단일 참조를 참조해야합니다.

예를 들어 폴더 구조가 있다고 가정 해 보겠습니다. 생각해 볼 수있는 "정상적인"방법은 폴더가 있고 그 폴더에 파일이 들어 있다는 것입니다. 그러나 관계형 데이터베이스에서 폴더에는 파일 목록이 없습니다. 사실 아무것도 (직접적으로) 다른 것의 목록을 가질 수 없습니다. 당신이하는 일은 각 파일이 자신이 속한 폴더의 ID를 알 수 있도록하는 것입니다. 이제 폴더가 있고 그 안에 들어있는 파일을 찾으려면 모든 파일을보고 그 파일을 찾으십시오. 컨테이너에 해당 폴더가 있습니다.

+0

class2의 한 인스턴스에 class1의 목록이 포함되도록하려는 것 같다. --- 정확히 내가 원하는 것이다. 할 ....하지만 매번 신선한 추가되어야 할 때마다 ... 기본적으로 기존 개체가 나타납니다 때 manytomany realtion – ramsin

+0

Ignacio처럼 ForeignKey를 사용하여 시도했다. 문제는 Class2에 ForeignKey를 넣으려고한다는 것입니다. 그건 잘못된거야. ForeignKey는 하나의 class2를 가리키는 class1에 있어야합니다. 그러면 class2와 class1 사이에 일대 다 (one-to-many)가 제공되고 class1에는 정확히 1 class2가 포함되며 class2에는 많은 class1이 (간접적으로) 포함됩니다. Django는 당신을 위해 그 마법을 돌보고 class2에 class1 목록을 자동으로 만들지 만 실제로 데이터베이스에 목록으로 존재하지 않는다는 것을 알게됩니다. 1 데이터베이스 행에 대한 목록이 불가능합니다. ManyToMany가 필요한 경우 세 번째 테이블이 만들어집니다. – Davy8

관련 문제