2011-10-25 2 views
2

사용자가 choicefield에서 부서를 선택할 수있는 간단한 양식이 있습니다. 내 서버를 다시 시작하지 않는 한 내가 관리자에서 새 부서를 추가 할 때마다서버를 다시 시작하지 않고 Django ChoiceField를 다시 채우십시오.

class NewDealForm1(forms.Form): 
     department = forms.ChoiceField(choices = map(lambda x:('%s'% x.id, '%s' % x.title),Department.objects.all())) 

, 내 choicefield 새로운 부서를 표시하지 않습니다

이 내 형태입니다.

서버를 다시 시작하지 않고 모든 부서를 표시하려면 어떻게해야합니까?

답변

4

Wolph의 답변이 정확합니다.

그러나 직접 질문 ("서버를 다시 시작하지 않고 Django ChoiceField 다시 채우기")에 응답하려면 양식 생성자에서 선택 항목을 설정해야합니다. 다음은 동적 신용 카드 연도 선택의 예입니다.

class NewDealForm1(forms.Form): 
    year = forms.ChoiceField(choices=[])) 

    def __init__(self, *args, **kwargs): 
     super(NewDealForm, self).__init__(*args, **kwargs) 
     year = datetime.date.today().year 
     self.fields['year'].choices = [(x, x) for x in range(year, year+10)] 
관련 문제