ユーザーに郵便番号の入力を求めるフォームがあります。完了すると、「pickup_date」というフィールドがある別のフォームに送信されます。これは、前のフィールドから郵便番号の値を取得し、その郵便番号に一致する利用可能なすべての pickup_dates を ChoiceField に取得します。これらすべてをモデル フォームのinit内に設定しました。
def __init__(self,*args,**kwargs):
super(ExternalDonateForm,self).__init__(*args,**kwargs)
if kwargs:
zip = kwargs['initial']['zip']
self.fields['pickup_date'] = forms.ChoiceField(choices = self.get_dates(zip))
elif self.errors:
zip = self.data['zip']
self.fields['pickup_date'] = forms.ChoiceField(choices = self.get_dates(zip))
私が抱えている問題は、フォームに他のエラーがある場合です。を使用しelif self.errors
て可能な選択肢を再生成しますが、デフォルトで選択された元のオプションにはなりません。元に戻り、デフォルトで最初の選択に戻ります。フォームエラーのデフォルトオプションが最初に投稿されたものになるようにするにはどうすればよいですか?