2012-08-12 2 views
-1

이 질문에 대한 칭찬의 제목은 대단히 죄송합니다. 나는 간단한 문맥에서 그것을 어떻게 표현할 것인가를 생각할 수 없다.Django 모델 변수 - 고유


간단한 사진 갤러리를 만들고 있습니다. 관리자는 갤러리 페이지를 만들고 이미지를 업로드 할 수 있습니다. 각 갤러리마다 하나의 사진에서 하나의 배너 이미지를 만들고 싶습니다. 사진 모델에는 배너인지 아닌지를 알려주는 CharField가 있습니다. 갤러리에 속한 모든 사진에 하나의 'B'만 허용하도록 변수를 만드는 방법이 있습니까?

답변

1

클래스에 대해 unique_together 변수를 정의해야합니다. 필드 이름이 albumbanner 인 경우 모델의 메타 클래스에이 행을 추가해야합니다.

Django Documents, unique-together

unique_together = (("album", "banner"),) 
그리고 내가 부울 값을 charfield를 사용하여, 생각은 올바른 선택이 아니다. banner 필드를 BooleanField로 변경해야합니다.

+0

감사합니다. 이것은 내가 원하는 것일지도 모른다. 보조 노트에서 charfield는 더 많은 옵션을 지원하지만 내 문제에는 필요하지 않았습니다. 프로젝트 당 하나의 배너 만 있는지 확인하면됩니다. –

0

OneToOne 필드를 생성하지 않는 이유는 무엇입니까?

class Gallery(models.Model): 
... 
banner = models.OneToOneField(Photo) 

이렇게하면 갤러리와 사진간에 고유 한 관계가 생깁니다.