2012-06-01 5 views
0

djano 모델에서 ForeignKeys 필드 쿼리를 필터링 할 수 있습니까? (기본적으로 django는 objects.all()을 사용합니다).django 모델의 외래 키 필터링 선택

울부 짖는 소리의 예를 참조하십시오 : -> 학술 대회 -> sip_conf -> 피어 -

서버 컨텍스트>

서버 -> ext_conf -> 컨텍스트

contextFK 만의 목록에있을 수 있습니다 conf 및 ext_conf에 대해 동일한 ServerFK에 대한 ext_conf 모델에 포함 된 context's_ID;

답변

1

비교적 직선적 인 제한 사항이므로 limit_choices_to을 사용할 수 있습니다.

class MyModelForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(MyModelForm, self).__init__(*args, **kwargs) 

     self.fields['my_fk_field'].queryset = self.fields['my_fk_field'].queryset.filter(...) 
+0

ModelForm의 필터링은 UI에서 보호됩니다

아무것도 너무 복잡, 당신은이 ModelForm 재정의해야합니다. 하지만 코드에 대해? django Console? 나는 아무것도 생각하지 않는다. 이것은 도움이 되겠지만 완전하지는 않습니다. –

+0

내가 말했듯이, 당신은 어디에서나 사용할 수있는'limit_choices_to'를 가지고 있습니다. 너가 그것을 사용할 수 있으면, 너는 황금이야. 당신의 유스 케이스에 충분히 강력하지 않다면, 당신이 가지고있는 것은 모두 폼입니다. 그래서 쉘을 통한 직접적인 생성은 그것을 존중하지 않을 것입니다. –

+0

답변 해 주셔서 감사합니다, 크리스. limit_choises_to를 필터링하려고 시도 할 것이고 해결책이 발견되면 게시 할 것입니다. –