2015-01-27 3 views
0

내 django 응용 프로그램에서 'status'라는 모델 필드가 있습니다. 이 필드에 대한 데이터를 가져 오는 양식 중 하나에서 모델에서 사용할 수있는 모든 선택 항목의 하위 집합 만 표시하려고합니다. 양식에서 선택 사항을 제거 할 수있는 방법이 있습니까? 내가 선택한 데이터베이스와 관리 인터페이스에서 제거 된 선택이 필요합니다.django에서 모델 선택의 선택적 표시

status = models.CharField(STATUS_FIELD_NAME, choices=STATUS_CHOICES, 
          default=STATUS_DEFAULT, 
          max_length=3) 
+2

[동적 선택 필드 만들기]의 중복 가능성 (http://stackoverflow.com/questions/3419997/creating-a -dynamic-choice-field) – Anentropic

+1

그것은 중복되어 있습니다. @Anentropic link; 사용할 ModelForm을 설정해야합니다. –

답변

0

당신은 당신의 형태로 선택의 부분 집합을 정의 할 수 있습니다 :

class YourForm(forms.ModelForm): 
    SUBSET_CHOICES = (
     (YourModel.CHOICE_ONE, _('First choice')), 
     (YourModel.CHOICE_TWO, _('Second choice')), 
    ) 

    class Meta: 
     model = YourModel 
     fields = ['choice', ] 

    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 
     self.fields['choice'].choices = self.SUBSET_CHOICES