質問

イムは、私はこれを行う方法がわからない:)再び尋ねます。

私の英語があまりにも良いではありませんが、病気これを尋ねてみてます:

私は、最初にフォームのアクションは、第二の形式(POST)に2フォームの起こっているしているので、

イムがこれを求めて?、どのように病気のフォームを検証し、プレビューURL(同じビューフォーム)に戻って検証エラーを表示しかし、この二番目の形式で(ビュー?)最初の形式が有効であれば、私は病気にエラーが発生した最初のフォームを表示し、他の第二のフォームを表示したい、最初の形式を検証する必要があります。

私はイム明確な、申し訳ありませんイム場合は知らない。

イムこれについて考えます:

def secondForm(request):
    if request.method =='POST':
       form = FirstForm(request.POST)
       if form.is_valid():
          fields = request.POST.copy()
          # showing the second form?? with x differents fields, i have 2.
          if fields['xvalue']=='1': # this is from radio buttons
             form2 = xSecondForm()
          elif fields['xvalue']=='2':
             form2 = ySecondForm()
       else:
         # here go back with erros msgs????
         #return render_to_response('firstFormTemplate.html',{'form': form}, context_instance=RequestContext(request))
    else:
      #return something or go back ???

みんなありがとう PD:ジャンゴ+パイソンをコーディング幸せ、イムイム:D

役に立ちましたか?

解決

はい、フォームウィザードは、あなたの答えかもしれませんが、あなたはおそらくビュー内のいくつかのロジックでそれを行うことができます。

のような何かます:

def your_view(request):
    context = {}
    data = request.method == 'POST' and request.POST or None
    form = FirstForm(data=data)
    # If the first form is valid, build the second.
    if form.is_valid():
        if form.cleaned_data['xvalue'] == 1:
            form2 = xSecondForm(data=data)
        else:
            form2 = ySecondForm(data=data)
        context['form2'] = form2
    # If both forms are valid, everything is done.
    if form.is_valid() and form2.is_valid():
        # TODO: put save/processing logic here
        # Now redirect.
        return http.HttpResponseRedirect(...)
    # If we get here, either there hasn't been a post yet, the second form hasn't
    # been entered, or there was an error in either form.
    context['form'] = form
    return render_to_response(...)

他のヒント

[OK]を、みんな、私はマイルソリューションがフォームウィザードであることを考える:)

が、私の第二の形式についての何かとイム明確ではない、私はラジオで選択されたオプションは、(第2形式)多かれ少なかれフィールドにある場合は別の方法で第二のフォームを表示する必要があるため、

私はあなたの第二の形式での表示を行うものをどのように/上のいくつかのロジックを実行するためにprocess_step()を使用したいと考えています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top