代码之家  ›  专栏  ›  技术社区  ›  fh_

Django:将表单“拆分”为几页

  •  4
  • fh_  · 技术社区  · 10 年前

    首先,我必须承认我对Django完全陌生。 我遇到了一个问题,但我可能只是不知道如何正确地表达它,以便在网络上获得适当的帮助。因此,我感谢任何形式的帮助,并提前感谢您作为新手对我的耐心^^

    在我的模型中。py,我在模板中定义了几个名为“choice_1”、“choice_2”等的RadioSelect。html我循环Django的 form 对象来获取表中的所有RadioSelects,这非常好:

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

    这是我的问题:

    现在,我想将表单“拆分”到多个页面上,即我希望在同一HTML模板中的单独页面上显示每个RadioSelect。为了做到这一点,我在网上搜索了一下,纠结于我能想到的两种不同的方法来处理这个问题:

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

    2. 另一个想法是某种“分页”之类的。我已经找到了django内置 pagination 但我没办法解决问题。

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

    1 回复  |  直到 10 年前
        1
  •  1
  •   Dhilton    10 年前

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