Django Forms 手动格式化
Django Forms Manual Formatting
我在格式化 Django Formset 时遇到问题,我不知道最好的方法是什么...希望得到您有经验的反馈。
我有一个表单集 (SystemConfigurationFormset),它有一个包含以下两个字段的表单 (SystemConfiguration):
- memory_size - 整数字段
- cpu_cores - 整数字段
我已经阅读了很多关于 Formsets 的文章,如果我找到了正确的方法,我仍然有点困惑。本质上,我想在同一个网页上重复同一个表单 3 次。单击“提交”应该唯一地提交三个表单中的所有数据(使用一些前缀来标识表单集的每个表单)。
问题是,我需要为每个表单设置一个单独的标题。例如:
Form1-名称 Form2-名称
-表格 1-此处- -表格 2-此处-
(表格并排)
我将如何处理这种方法?现在,这是我讨厌的代码,我相信你可以看出它是不正确的:
<div class="box-content">
<div class="row-fluid">
<form class="form-horizontal" action="" method="POST"> {% csrf_token %}
<div class="span3" onTablet="span6" onDesktop="span3">
{{ formset.management_form }}
<h2><b>Application VM</b></h2>
<fieldset>
{{ formset.form.as_table }}
</fieldset>
</div>
<div class="span3" onTablet="span6" onDesktop="span3">
<h2><b>Router VM</b></h2>
<fieldset>
{{ formset.form.as_table }}
</fieldset>
</div>
<div class="span3" onTablet="span6" onDesktop="span3">
<h2><b>System VM</b></h2>
<fieldset>
{{ formset.form.as_table }}
</fieldset>
</div>
</div>
<div class="form-actions">
<!-- <button type="submit" class="btn btn-primary">Save changes</button> -->
<button type="submit" class="btn btn-primary">Save</button>
<button type="reset" class="btn">Reset</button>
</div>
</form>
非常感谢您的帮助!
这是一个解决方案,对表单的标题进行了一些改动。如果您想摆脱它,我建议您在视图中使用 python 的 zip 函数来组合表单集和标题列表。可以在 answer 中找到这样做的示例。
{{ formset.management_form }}
{% for form in formset %}
<div class="span3" onTablet="span6" onDesktop="span3">
<h2><b>
{% if forloop.counter == 1 %}
Application VM
{% elif forloop.counter == 2 %}
Router VM
{% elif forloop.counter == 3 %}
System VM
{% endif %}
</b></h2>
<fieldset>
{{ form.as_table }}
</fieldset>
</div>
{% endfor %}
我在格式化 Django Formset 时遇到问题,我不知道最好的方法是什么...希望得到您有经验的反馈。
我有一个表单集 (SystemConfigurationFormset),它有一个包含以下两个字段的表单 (SystemConfiguration):
- memory_size - 整数字段
- cpu_cores - 整数字段
我已经阅读了很多关于 Formsets 的文章,如果我找到了正确的方法,我仍然有点困惑。本质上,我想在同一个网页上重复同一个表单 3 次。单击“提交”应该唯一地提交三个表单中的所有数据(使用一些前缀来标识表单集的每个表单)。
问题是,我需要为每个表单设置一个单独的标题。例如:
Form1-名称 Form2-名称
-表格 1-此处- -表格 2-此处-
(表格并排)
我将如何处理这种方法?现在,这是我讨厌的代码,我相信你可以看出它是不正确的:
<div class="box-content">
<div class="row-fluid">
<form class="form-horizontal" action="" method="POST"> {% csrf_token %}
<div class="span3" onTablet="span6" onDesktop="span3">
{{ formset.management_form }}
<h2><b>Application VM</b></h2>
<fieldset>
{{ formset.form.as_table }}
</fieldset>
</div>
<div class="span3" onTablet="span6" onDesktop="span3">
<h2><b>Router VM</b></h2>
<fieldset>
{{ formset.form.as_table }}
</fieldset>
</div>
<div class="span3" onTablet="span6" onDesktop="span3">
<h2><b>System VM</b></h2>
<fieldset>
{{ formset.form.as_table }}
</fieldset>
</div>
</div>
<div class="form-actions">
<!-- <button type="submit" class="btn btn-primary">Save changes</button> -->
<button type="submit" class="btn btn-primary">Save</button>
<button type="reset" class="btn">Reset</button>
</div>
</form>
非常感谢您的帮助!
这是一个解决方案,对表单的标题进行了一些改动。如果您想摆脱它,我建议您在视图中使用 python 的 zip 函数来组合表单集和标题列表。可以在 answer 中找到这样做的示例。
{{ formset.management_form }}
{% for form in formset %}
<div class="span3" onTablet="span6" onDesktop="span3">
<h2><b>
{% if forloop.counter == 1 %}
Application VM
{% elif forloop.counter == 2 %}
Router VM
{% elif forloop.counter == 3 %}
System VM
{% endif %}
</b></h2>
<fieldset>
{{ form.as_table }}
</fieldset>
</div>
{% endfor %}