IM再次问:),我不知道怎么做这个。

我的英语不太好,但虐待尝试问这个:

如何生病验证表单,并返回到预览URL(同一视图的形式),并显示验证错误?IM问这个,因为我有2形式的,第一种形式的行动带来的是第二种形式(POST)的,但在该第二形式(图?)我需要验证第一种形式,如果所述第一形式是有效的我要显示第二形式别的生病显示有错误的第一种形式。

我不知道如果即时通讯清楚,对不起。

即时考虑这样的:

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:Im愉快,即时通讯编码的Django +蟒:d

有帮助吗?

解决方案

是,formwizard可能是你的答案,但你很可能在一个视图中的某些逻辑做到这一点。

是这样的:

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

其他提示

好,好,我认为MI溶液是FormWizard:)

但不即时用一些关于我的第二形态清楚,因为我需要说明了在不同的方式在第二形式中,如果无线电选择的选项是用于更多或更少的字段(在第二形式)

我想你想使用process_step()做关于如何/什么在你的第二个形式做一些显示逻辑。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top