动态将表单重定向到另一个表单

时间:2018-10-05 21:47:49

标签: django forms url redirect render

我是Django的初学者。因此,如果我的问题是假的,我谨此表示诚挚的歉意。话虽这么说,但到目前为止,我一直在尝试在互联网上寻找答案,但到目前为止没有成功。

简而言之,我有一个由单个 MultipleChoiceField 组成的表单。

当用户第一次使用此表单在网页上连接时,他可以选中适当的框,然后单击“提交”按钮。到目前为止,我已经做到了。

我遇到的问题是如何将用户重定向到另一种表单(总共有10种表单,直到用户到达“完整”网页为止)。

使用 redirect ,我知道如何将用户重定向到静态网页,但是我不知道如何将用户重定向到动态网页(即基于我视图中的变量值)

以下是我为帮助您更好地了解要达到的目的而编写的脚本:

[views.py]

def my_form(request, id):

    form = MyForm(request.POST or None, form_id=id)

    if form.is_valid():

        # DO SOME CLEAN-UP...

        form.id += 1
        id += 1

    return render(request, 'my_form.html', {'form': form, 'id': id})

[urls.py]

urlpatterns = [
    ...
] +
[url('my_form', views.my_form, {'id': 1}, name='my_form'))]

您可以想象,我的目标是从ID 1开始,然后每当用户单击Submit按钮时,他就会被重定向到ID + 1表单,直到编号10。

使用上面的代码,我总是被重定向到id = 1的页面。

在请求使用中肯定有些我不了解的东西,但是我无法弄清楚是什么。而且我在本委员会和其他委员会上提出的许多问题都没有帮助。

我很高兴听到那些比我更多的Django经验的人出错了。

非常感谢您。 苏菲:)

[编辑2018年6月10日]

代码现在如下所示:

[my_form.html]

<form action="{% url 'my_form' %}" method="post">



    {% csrf_token %}

    <table border="1">
        {{ form.as_p }}
    </table>

    <input type="submit" value="Submit" class="btn btn-primary"/>

</form>

[urls.py]

urlpatterns = [
    ...
] +
[path('question/<int:id>/', views.my_form, name="my_form")]

1 个答案:

答案 0 :(得分:0)

也许HttpResponseRedirect帮助您。

return HttpResponseRedirect(reverse('my_form', kwargs={'id':id})