在同一模板

时间:2016-03-08 00:02:14

标签: python django

我正在尝试编写一个条件,如果第一部分没问题,那么第二部分将会显示。我以下列方式编写了我的forms.py:

class SubmissionForm(forms.Form):
      first_name=forms.CharField(max_length=120, required=True)
      last_name=forms.CharField(max_length=120, required=True)
class UploadForm(forms.Form):
    file1 = forms.Field(label='File1', widget = forms.FileInput,required = True )
    file2 = forms.Field(label='File1', widget = forms.FileInput,   required = True )

在我的views.py中:

def submission(request):
validform=False
title="Please submit your data"
form = SubmissionForm(request.POST)
contextsumission={"title":title, "form":form}
if form.is_valid():
    first_name = form.cleaned_data.get("first_name")
    last_name = form.cleaned_data.get("last_name")
    validform=True
    if validform:
        contextupload={"title":"Please upload your files","valid":True}
        return render(request, 'submission.html', contextupload)
    form2 = UploadForm(request.FILES)
    contextsumission={"title":'Upload files', "form2":form2}
    if form2.is_valid():
        file1 = form2.request.FILES.get("file1")
        file2 = form2.request.FILES.get("file2")
        contextsumission={"title":"Thank you for your data submission"}

return render(request, 'submission.html', contextsumission)

我试图以下列方式编写我的模板

                    {% if valid %}
                    <h1 class ='text-align-center', style="color: blue;"> {{ title }} </h1>
                    <form method ='POST' enctype="multipart/form-data" action =''> {% csrf_token %}
                        {{form2|crispy}}
                        <input class='btn btn-primary', type='submit', value='Upload'>
                    </form>

                {% else %}
                    <h1 class ='text-align-center', style="color: blue;"> {{ title }} </h1>

                    <form method ='POST' enctype="multipart/form-data" action =''> {% csrf_token %}
                        {{form|crispy}}
                        <input class='btn btn-primary', type='submit', value='Submit'>
                    </form>

                {% endif %}

我可以在模板中清楚地看到我的SubmissionForm,但是在按下提交按钮后我想显示文件上传表单,但它无效。 任何人都可以告诉我在哪里需要更改我的代码? 谢谢 保罗

是的我已经意识到这一点并修改了我的代码但仍然存在问题并且def提交功能未验证两种形式!!这意味着当我尝试执行form2.is_valid()时,返回false。

def submission(request):
title="Please submit your data"
form = SubmissionForm(request.POST)
contextsubmission={"title":title, "form":form}
if form.is_valid():
    first_name = form.cleaned_data.get("first_name")
    last_name = form.cleaned_data.get("last_name")
    form2 = UploadForm(request.FILES)
    contextsubmission ={"title":"Please upload your files","form2":form2,"valid":True}
    if form2.is_valid():
        file1 = form2.request.FILES.get("file1")
        file2 = form2.request.FILES.get("file2")
        contextbsumission={"title":"Thank you for your data submission"}
return render(request, 'submission.html', contextsubmission)

0 个答案:

没有答案