Domanda

im chiedendo ancora una volta :), io non so come fare questo.

Il mio inglese non è troppo buono, ma mal provate a chiedere questo:

quanto male convalidare un modulo e tornare alla URL di anteprima (la stessa forma vista) e mostrare gli errori di validazione ?, im chiedendo questo perché ho 2 forma di, l'azione del primo modulo sta per un secondo modulo (POST) , ma in questa seconda forma (vista?) ho bisogno di validare la prima forma, se il primo modulo è valido voglio mostrarvi la seconda forma altro malato mostrare la prima forma di errori.

Non so se im chiaro, mi dispiace.

im a pensare a questo:

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 ???

Grazie ragazzi PD: sono felice, im codifica Django + python: D

È stato utile?

Soluzione

Sì, FormWizard potrebbe essere la vostra risposta, ma probabilmente si potrebbe fare con una certa logica in una vista.

Qualcosa di simile:

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(...)

Altri suggerimenti

Ok, ragazzi, penso che la soluzione mi è FormWizard:)

ma im non è chiaro con qualcosa sulla mia seconda forma, perché ho bisogno di mostrare la seconda forma in modo diverso se l'opzione selezionata in radio è per i campi più o meno (nel secondo modulo)

; (

Credo che si desidera utilizzare process_step () per fare un po 'di logica su come / cosa fare video del secondo modulo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top