갤러리 필드를 쓰고 있습니다. 필드 서브 클래스는 ManyToManyField
이며 고유 한 Ajax 위젯을 추가합니다. 이 솔루션을 최대한 작게 만들고 싶습니다 (가능한 한 다른 프로젝트에서이 코드를 다시 구현하는 코드를 작성하고 싶습니다).Django ManyToMany 제네릭 "through"모델
class IntermediateModel(models.Model):
from_content_type = models.ForeignKey(ContentType)
from_object_id = models.PositiveIntegerField()
from_content_object = generic.GenericForeignKey('from_content_type', 'from_object_id')
to_content_type = models.ForeignKey(ContentType)
to_object_id = models.PositiveIntegerField()
to_content_object = generic.GenericForeignKey('to_content_type', 'to_object_id')
order = models.PositiveIntegerField()
다음 질문 발생 :
- 인가
나는 주문 정보를 개최, (즉,이
ManyToManyField
에 매개 변수 '를 통해'제공) 중간 테이블을 만들하기로 결정했습니다 django에서 m2m에 대한 "통과"모델을 가질 수 있습니다. 위와 같은 일반적인 관계를 가리키는 두 개의 외래 키가 있습니다. 그렇다면 어떻게 이것을 달성 할 수 있습니까? - 이렇게 할 수 있다면 - 그러한 모델이 둘 이상의 m2m 필드간에 일반적인 관계를 유지할 수 있습니까? 예 : 클래스 < -> 중급 < -> 학생, 갤러리 < -> 중급 < -> 사진 - 중급을 모두 '통과'모델로 사용합니까 ??
- 편집 : 방금 테스트 - 할 수 있습니다.) '통과'테이블에 추상 클래스를 사용할 수 있습니까? 만약 위에서 언급 한 복잡한 시나리오가 작동하지 않는다면 순서와 다른 것들을 제공하는 두 개의 추상 클래스를 생성하고 실제로 어떤 관계를 구축하기 위해 정상적인 서브 클래스를 생성 할 수 있습니다 :)
중간 모델에서 주문 필드를 갖고 싶습니다. GalleryField라는 일반 플러그인을 만들고 싶습니다. 일반 중간 모델을 사용하면 중급 메타 클래스를 조작 할 필요가 없습니다 (중간 테이블을 자동 생성). 이를 달성하기위한 몇 가지 기본 단계가 있습니다 (imaging.models의 imaging.fields.GalleryField 및 모델 초록). https://github.com/pielgrzym/django-imaging.git – pielgrzym