2010-05-26 3 views
1

나는 장고를 가르치고 개인 포트폴리오 사이트를 만들고있다. FolioItem이라는 모델을 설정하여 FolioImage이라는 다른 모델과 다 대다 관계를 사용합니다. 각 FolioItem이라는 아이디어는 수많은 FolioImages를 가질 수 있습니다. 장고의 관리자 인터페이스에서 나는 새로운 FolioItem 년대하지만 (많은 - 투 - 많은 FolioImage에 관한)이 표시되어 이미지 필드를 만들 수 있습니다장고 관리자 - 다 대다 필드 혼동

class FolioImage(models.Model): 
    image = models.FileField(upload_to='portfolio_images') 
    def __unicode__(self): 
     return self.image.name 

class FolioItem(models.Model): 
    title = models.CharField(max_length=50) 
    thumbnail = models.FileField(upload_to='portfolio_images') 
    images = models.ManyToManyField(FolioImage) 
    def __unicode__(self): 
     return self.title 

기존의 모든 FolioImage의 이전에 다른 FolioItems에 추가됩니다.

실제로 이것은 새 항목이며 아직 연결된 이미지가 없으므로 비워 두어야합니다. 새 항목을 만들 때이 선택기를 비워 둘 수있는 방법이 있습니까?

또한 기존 항목을 편집하려고 할 때 FolioImage 연관을 추가하거나 삭제할 수없는 것 같습니다 (작은 녹색 + 아이콘이 없음).

조언이 도움이 될 것입니다.

답변

1

나는 당신이 여기에서 잘못된 관계를 사용하고 있다고 생각합니다. FolioImages가 단일 FolioItem에만 속하도록하려면 FolioImage에서 FolioItem까지 ForeignKey를 사용해야합니다. 그런 다음 항목에 대한 관련 이미지를 인라인 양식 세트로 표시하도록 관리 인터페이스를 구성하면 해당 항목의 이미지 만 편집 할 수 있습니다.

+0

감사합니다. 인라인 모델이 어떻게 작동하는지 배우지 못했습니다. 단일 FolioImage는 단 하나의 FolioItem과 만 연결될 것이므로 훨씬 더 잘 작동합니다. – Groady

1

새 항목을 만들 때 선택기를 비워야하는 방법이 있습니까?

기본 선택 여러 위젯에 대한 인터페이스가 약간 혼란 스럽다고 생각합니다. 기존 이미지를 모두 보여 주어 선택 항목으로 사용할 수있게하지만 브랜드의 새로운 항목에는 관계가 없습니다. 실제로 항목을 클릭하거나 여러 항목을 선택하려면 이동 (또는 제어) - 클릭하여 속기를 수행 한 다음 Folio 항목을 저장하여 관계를 만들어야합니다. 내가 추가하거나 삭제 FolioImage 협회 수없는 기존 항목을 편집 할 때

또한,이 보인다합니다 ( 작은 녹색 + 아이콘이 존재하지 않습니다).

다시 말하지만, 항목을 연결하려는 이미지를 클릭하거나 Ctrl 키를 누른 채로 클릭하여 선택/선택 취소하면됩니다.

또한 기본 선택 다중 인터페이스 대신 장고의 멋진 수평 또는 수직 필터를 사용하는 것이 좋습니다. 인라인 인터페이스를 사용할 수도 있습니다. 자세한 내용은 herehere입니다. 나는 필터 인터페이스가 훨씬 더 직관적이라고 생각한다.