如何在提交后重定向表单

0 投票
1 回答
516 浏览
提问于 2025-04-16 08:27

我有一个表单,用户可以选择年份和性别,然后点击提交。根据这些选择,我会计算一些数字,画一些图等等。到目前为止一切都很好。
我想做的是把这些图和数据放到一个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 个回答

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>

撰写回答