1
가 나는 ManyToManyField으로 관련이 두 모델을 가지고 속성 bar in Foo? 점 표기법이 유효하지 않습니다.많은 많은 필드에 액세스은
가 나는 ManyToManyField으로 관련이 두 모델을 가지고 속성 bar in Foo? 점 표기법이 유효하지 않습니다.많은 많은 필드에 액세스은
짧은 답 : 할 수 없습니다.
긴 답 : 귀하의 질문에 "어떻게 푸 막대의 이름에 액세스 할 수는"주어진 Foo
인스턴스가 언제나 하나 하지 제로가 아닌 두 (Bar
관련 단 하나의하지 마흔두을 의미한다 정확하게 하나). ManyToManyField
을 사용하고 있습니다. 이는 Foo
인스턴스가 0, 1 또는 관련 (Bar
)의 (양수) 숫자를 가질 수 있음을 의미합니다. 이 경우, Foo.bar
가 아닌 하나의 Bar
인스턴스로하는의 검색어에 IOW
f = Foo()
f.bar.all()
를 해결하는 것은이 경우 Foo.bar
에 실제로
f = Foo()
Bar.objects.filter(bb=f) # very weird related name FWIW
에 해당이 더 나은 Foo.bars
(복수의) 이름을 지정해야합니다. 당신의 의도는 각 Foo
하나의 단일 Bar
을 가지고 많은 관계로 하나를 가지고 있었고, Bar
많은 Foo
이있는 경우
, 당신은 대신 ForeignKey
합니다.
중개 테이블/모델을 사용하여 문제를 해결할 수있는 방법이 있는지 알고 계십니까? – loar
다 대다 관계는 중개 테이블을 기반으로 구축되었습니다. 이는 실제로 관계형 모델 101입니다. 그리고 그것은 단지 "해결"하지 않을 것입니다. 당신의 설계가 잘못되었습니다 (당신은 일대 다 관계를 원했을 때 많은 것을 선택했습니다) 또는 질문이 이해가되지 않습니다 (다 대다 관계의 의미를 참조하십시오)). –