我的网络应用程序中有很多“民意调查”,其中我将它们全部显示在同一页面上,但无法弄清楚如何为所有表单设置一个提交(投票)按钮。截至目前,他们对每个问题都有自己的投票按钮,但我希望只有底部的一个按钮可以提交所有内容。
此模板的 HTML 代码如下:
{% if latest_question_list %}
{% for question in latest_question_list %}
<h2>{{ question.question.text }}</h2>
<form action="{% url 'polls:vote' question.id %}" method="post">
{% csrf_token %}
{% for choice in question.choice_set.all %}
<input type="radio" name="choice" id="choice{{ for loop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
{% endfor %}
<input type="radio" name="choice" value="">Other: <input type="text" />
<br><input type="submit" value="Vote" /></br>
</form>
{% endfor %}
{% else %}
<p>No polls are available.</p>
{% endif %}
有没有简单的方法可以做到这一点?我很感激任何帮助!谢谢。
最佳答案
参见 - django submit two different forms with one submit button
当从请求提供数据时,Django 的表单类会查看 POST 或 GET 以按元素 id 查找值。表单中的所有字段都必须具有唯一的 ID 或使用 Django form's prefix keyword在构建您认为的表单时。
简而言之 - 将所有表单元素放在一个 html 标签中,使用 prefix 关键字(在 View 中构造表单时,每个 Django 表单都有唯一的前缀;这将改变 input/select/radiobox 元素' id 属性),然后从那里开始。向每个表单实例提供 GET 或 POST 并
你可以走了。
但是,上面的代码显示您手动填充每个字段的 ID。相反,为什么不将每个表单传递给模板作为包含 {{ form_name.as_p }} ?除非您有充分的理由不这样做,否则您可能会给自己带来麻烦。
关于html - Django 多个表单,一个提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31438860/