Django:"split" 多个页面上的表单

Django: "split" a form on several pages

首先,我必须承认我是 Django 的新手。 我遇到了一个问题,但可能我只是不知道如何正确放置它才能在网络上获得适当的帮助。因此,我感谢任何形式的帮助,并在此先感谢您对我这个新手的耐心等待。^^

在我的 models.py 中,我定义了几个名为 "choice_1"、"choice_2" 等的 RadioSelects。在我的 template.html 中,我循环 Django 的 form 对象以在 table 中获取所有 RadioSelects,效果非常好:

<table class="table">
    {% for field in form %}
        <tr>{% formfield field %}</tr>
    {% endfor %}
</table>

这是我的问题:

现在我想 "split" 多个页面上的表单,即我想在同一个 HTML 模板中的单独页面上放置每个 RadioSelect。为此,我在网上进行了搜索,并偶然发现了两种我能想到的处理问题的方法:

  1. In this thread,例如推荐使用slice模板过滤器。对我来说,这似乎是一个完美的解决方案,因为它可以通过使用 {% for fields in form|slice:":1" %} 轻松实现。但是,我无法用 slice 完成它;实际上,它似乎没有任何改变。

  2. 另一种想法是某种"pagination"之类的。我已经找到了 django-build-in pagination 类 但我无法解决问题。

不知道如何解决这个问题,非常感谢您的帮助。提前非常感谢你,祝你好运,fh_!

我认为您需要的是 Django Form Wizard,它现在是 django-formtools 的一部分,而不是核心 Django。对于每个页面视图,您定义一个表单(在您的示例中,我想您需要定义表单而不是依赖模型表单实现),然后将这些表单包装在 FormWizard 中。