django表单渲染

时间:2012-09-08 12:35:19

标签: django forms

我已经构建了一个django表单,简单的提取如下:

attachuploadediso = forms.BooleanField(label='Attach uploaded ISO', required=False)
detachuploadediso = forms.BooleanField(label='Detach uploaded ISO', required=False)
extractuploadediso = forms.BooleanField(label='Extract uploaded ISO', required=False)

然后我在模板中渲染表单如下:

{% block mainbody %}
<form class = "mf" action="/form/" method="post">{% csrf_token %}
{{ form.errors }}
{{ form.non_field_errors }}
{{ form.label_tag }} {{ form.as_p  }}
<input type="submit" value="Submit" />
</form>
{% endblock %}

复选框显示在标签文本之后。有没有办法复选框出现在一行中,以便表单看起来像格式更好?或者有没有办法可以更好地控制表单的布局?我使用了form.as_table,但是如果我在表格中渲染表单,我的jquery会中断。

总之,我想

(标签)附加上传的ISO .............................(复选框)

(标签)分离上传的ISO ............................(复选框)

(标签)提取上传的ISO .............................(复选框)

如何在表单呈现时更好地控制布局,以便复选框都在一行中?

谢谢 - Oli

1 个答案:

答案 0 :(得分:4)

您可以在表单中单独渲染每个字段并控制外观。每个字段都有标签,可以呈现为{{field.label_tag}},字段输入为{{field}}

来自Django forms documentation

的更多详情
<form action="/contact/" method="post">
{% for field in form %}
    <div class="fieldWrapper">
        {{ field.errors }}
        {{ field.label_tag }}: {{ field }}
    </div>
{% endfor %}
<p><input type="submit" value="Send message" /></p>
</form>