次のように、FormWizard を使用して 2 ステップのフォームを作成しました。
- 第 1 ステップ: ユーザーに場所を尋ねる
- 2 番目のステップ: ユーザーの場所に応じていくつかの検索結果 を表示し、radioButtons として表示します。
これで、2 番目のフォームは最初のフォームの入力に依存します。いくつかのブログまたはスタックオーバーフローの投稿で同様のトピックが取り上げられており、私はその指示に従いました。 ただし、process_step 中に保存されるはずの変数は、次の_init_では使用できません。
process_step から _ init _ に変数の場所を伝えるにはどうすればよいですか?
class reMapStart(forms.Form):
location = forms.CharField()
CHOICES = [(x, x) for x in ("cars", "bikes")]
technology = forms.ChoiceField(choices=CHOICES)
class reMapLocationConfirmation(forms.Form):
def __init__(self, user, *args, **kwargs):
super(reMapLocationConfirmation, self).__init__(*args, **kwargs)
self.fields['locations'] = forms.ChoiceField(widget=RadioSelect(), choices=[(x, x) for x in location])
class reMapData(forms.Form):
capacity = forms.IntegerField()
class reMapWizard(FormWizard):
def process_step(self, request, form, step):
if step == 1:
self.extra_context['location'] = form.cleaned_data['location']
def done(self, request, form_list):
# Send an email or save to the database, or whatever you want with
# form parameters in form_list
return HttpResponseRedirect('/contact/thanks/')
どんな助けでも大歓迎です。
ありがとう、H
PS: 投稿は新しいコードで更新されました。