سؤال

أنا أسأل مرة أخرى :)، أنا لا أعرف كيف جعل هذا.

لغتي الإنجليزية ليست جيدة جدا، لكن سوء محاولة لسؤال هذا:

كيف يتم التحقق من صحة نموذج والعودة إلى عنوان URL معاينة (نفس نموذج العرض) وإظهار أخطاء التحقق من الصحة؟، أطلب من ذلك لأن لدي نموذج 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 Happy، IM ترميز Django + Python: 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(...)

نصائح أخرى

موافق يا شباب، أعتقد أن مي محلول ميثيزارد :)

لكنني لا أوضح بشيء عن النموذج الثاني، لأنني بحاجة إلى إظهار النموذج الثاني بطريقة مختلفة إذا كان الخيار المحدد في الراديو مخصص لحقل أكثر أو أقل (في النموذج الثاني)

;(

أعتقد أنك تريد استخدام Process_Step () للقيام ببعض المنطق حول كيفية عرض / ما في النموذج الثاني.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top