2010-06-17 5 views
11

두 개의 다른 팀 (관리 인터페이스에서 두 개의 다른 그룹으로 표시) 간의 상호 작용을 추적하는 데이터베이스가 있습니다. 일부 필드의 경우 사용자 데이터베이스에 외래 키가 있으며 드롭 다운 사용자를 특정 그룹에만 제한하려고합니다.제약 조건이있는 외래 키 드롭 다운을 제한하는 방법은 무엇입니까?

누군가에게 의견이 있으면 큰 도움이됩니다.

답변

16

당신은 limit_choices_to을 찾고 있습니다.

+0

답장을 보내 주셔서 감사합니다! 그러나, 나는 사용자 그룹 관계가 장고 관리자의 다른 테이블에 상주하는 것, 내가 어떻게 그 경우에 걸리겠습니까? – FurtiveFelon

+0

'Q' 개체와 함께. 'Q (group__icontains = u'user ')' –

+0

안녕하세요 이그나시오, 저는 아직도 어떻게해야하는지 혼란 스럽습니다. 추가 인증 모듈 코드를 파고 후에 그룹이 다음과 같이 User 클래스에 정의되어 있음을 발견했습니다. groups = models.ManyToManyField (Group, verbose_name = _ ('groups'), blank = True). 쿼리는 사용자를 기반으로하므로 문제의 현재 사용자가 그룹 "법률"에 있는지 확인하고 싶습니다. 그룹 모델에는 ID가 있으므로 사용자 이름에 직접 저장되지 않습니다. 모든 도움을 주셔서 대단히 감사합니다! – FurtiveFelon

2

당신은 양식 필드에 대한 기저의 검색어 세트를 변경할 수 있습니다 How do I filter ForeignKey choices in a Django ModelForm?

+0

보기에서 수행되어야한다고 말하는 것 같지만보기에 액세스하는 방법을 모르겠습니다. 액세스 할 수있는 유일한 것은 모델 클래스와 modeladmin 클래스입니다. 특정 방향 제안은 크게 감사하겠습니다! – FurtiveFelon

+0

사용자 정의 양식을 사용하여 양식의'__init__'에서 수행해야합니다! def __init __ (self, * args, ** kwargs) : super (MyForm, self) .__ init __ (* args, ** kwargs) self.fields [ "user"]. queryset = User.objects.filter (. ..) –

관련 문제