Question

im redemander :), je ne sais pas comment faire cela.

Mon anglais est pas trop bon, mais mal essayer de demander ceci:

comment mal valider un formulaire et revenir à l'URL d'aperçu (le même formulaire de vue) et de montrer les erreurs de validation ?, im pose cette question parce que j'ai 2 sous forme de, l'action de la première forme va à une deuxième forme (POST) , mais dans cette seconde forme (vue?) je dois valider la première forme, si la première forme est valide, je veux montrer la deuxième forme d'autre montrer malade la première forme avec des erreurs.

Je ne sais pas si im clair, je suis désolé.

im penser à ceci:

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

Merci les gars PD: im heureux, im codage Django + python: D

Était-ce utile?

La solution

Oui, formwizard pourrait être votre réponse, mais vous pouvez probablement le faire avec une certaine logique dans une vue.

Quelque chose comme:

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

Autres conseils

Ok, les gars, je pense que la solution est mi FormWizard:)

mais je ne suis pas clair avec quelque chose au sujet de mon formulaire En second lieu, parce que je dois montrer la deuxième forme de manière différente si l'option sélectionnée dans la radio est pour les champs plus ou moins (dans la deuxième forme)

; (

Je pense que vous voulez utiliser Process_Step () pour faire une certaine logique sur la façon / ce faire afficher dans votre deuxième forme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top