2011-10-25 21 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の答えは正しいです。

しかし、(「サーバーを再起動せずにジャンゴ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)] 
関連する問題