2012-03-09 2 views
0

모델 양식 중에서 선택하지 않은 옵션을 제거하려고합니다.Django 선택 항목 비 선택 필드

내 모델 필드는 선언 :

priority = models.IntegerField(choices=PRIORITIES_CHOICES) 

내 양식 코드는 다음과 같습니다

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

    self.fields['priority'].required = True; 

그러나, 선택되지 않은 필드가 멀리 가고 싶지 않습니다. (나는 ------ 옵션에 대해 이야기하고있다).

아이디어가 있으십니까?

+0

나는이 경우 self.fields [ 'priority']가 될 기본값을 지정할 수 있다고 생각한다. "somevalue"와 django는 그들을 추가하지 않습니다 pty option – Paulo

+0

글쎄, 초기 값으로 ----- 옵션을 추가했다 : ( –

답변

1

시도 :

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

     self.fields['priority'].choices = self.fields['priority'].choices[1:] 
+0

작동하지만 더 나은 결과가 있었습니까? 행운을 기반으로합니다 (첫 번째 행은 "------"). –

+0

그건 운이 아니에요. 어떤 이유로 든 직접 변경하지 않는 한 항상 첫 번째 옵션이됩니다. –

+0

아니면 다음 django 버전에서 변경 될 것입니다. 나는 그것이 유효한 해결책이라고 생각하지만, "장고"방식으로하는 것을 선호합니다. (있을 경우) –

0

사람이 여전히 1.5 장고에서 "장고 방식"이 작업을 수행하는 방법을 궁금해하는 경우 :

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

     self.fields['priority'].empty_label = None 

당신은 직접 필드 선언에 추가 할 수 있습니다 (만약 당신이 수동으로 init에 선언한다면), queryset, 위젯, 필수 항목 옆에.