如何在提交后重定向表单

时间:2010-12-13 11:56:45

标签: python django django-templates django-forms django-views

我有一个表单,用户选择年份和性别,然后点击提交。有了这些数值,我正在计算数字,绘制一些图片等等。到目前为止一切都很好 我想做的是在documentation的帮助下将这些图片和数据打开成pdf文件。

事情是,当他点击提交按钮时,我无法重定向用户。模板中的代码如下:

<form action="" method="post">
    <div class="report">
         {% for field in form_year %}
             {{ field }}
         {% endfor %}
    </div>
    <div class="report">
        {% for field in form_gender %}
            {{ field }}
        {% endfor %}
    </div>
    {% ifequal id_year None %}{% ifequal id_gend None %}
        <p><input type="submit" value="submit"/>
    {% else %}
        <p><input type="submit" value="submit" onclick="window.open('{% url pdf id_year id_gend %}'),'Ratting','width=700,left=50,height=600,0,status=0,scrollbars=1,');"/></p>
    {% endifequal %}{% endifequal %}

但在选择一些变量后,当我点击提交时,输入按钮消失,并且不会打开任何pdf文件。
我需要输入按钮才能支持超链接,他必须能够保存用户选择的值 有什么想法可以解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:1)

所以我必须做的就是这样:

在允许用户选择数据的视图中:

form_year = YearForm()
form_gender = GenderForm()
return render_to_response('report.html',
                            {
                                'form_year': form_year,
                                'form_gender': form_gender,
                                })

在打开pdf:

的视图中
if request.method == 'POST':
    form_year = YearForm(request.POST)
    form_gender = GenderForm(request.POST)
    if form_year.is_valid() and form_gender.is_valid():
        id_year = form_year.cleaned_data['years']
        id_gend = form_gender.cleaned_data['gender']
        filename = image #then insert this image into pdf file

和表单,进入模板:

<form action="./pdf" method="post">
    <div>
         {% for field in form_year %}
             {{ field }}
         {% endfor %}
    </div>
    <div>
        {% for field in form_gender %}
            {{ field }}
        {% endfor %}
    </div>
    <p><input type="submit" value="submit"/></p>
</form>