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。为此,我在网上进行了搜索,并偶然发现了两种我能想到的处理问题的方法:
In this thread,例如推荐使用slice
模板过滤器。对我来说,这似乎是一个完美的解决方案,因为它可以通过使用 {% for fields in form|slice:":1" %}
轻松实现。但是,我无法用 slice
完成它;实际上,它似乎没有任何改变。
另一种想法是某种"pagination"之类的。我已经找到了 django-build-in pagination
类 但我无法解决问题。
不知道如何解决这个问题,非常感谢您的帮助。提前非常感谢你,祝你好运,fh_!
我认为您需要的是 Django Form Wizard,它现在是 django-formtools 的一部分,而不是核心 Django。对于每个页面视图,您定义一个表单(在您的示例中,我想您需要定义表单而不是依赖模型表单实现),然后将这些表单包装在 FormWizard 中。
首先,我必须承认我是 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。为此,我在网上进行了搜索,并偶然发现了两种我能想到的处理问题的方法:
In this thread,例如推荐使用
slice
模板过滤器。对我来说,这似乎是一个完美的解决方案,因为它可以通过使用{% for fields in form|slice:":1" %}
轻松实现。但是,我无法用slice
完成它;实际上,它似乎没有任何改变。另一种想法是某种"pagination"之类的。我已经找到了 django-build-in
pagination
类 但我无法解决问题。
不知道如何解决这个问题,非常感谢您的帮助。提前非常感谢你,祝你好运,fh_!
我认为您需要的是 Django Form Wizard,它现在是 django-formtools 的一部分,而不是核心 Django。对于每个页面视图,您定义一个表单(在您的示例中,我想您需要定义表单而不是依赖模型表单实现),然后将这些表单包装在 FormWizard 中。