我收到了一些使用django-crispy-forms在Django中创建表单的建议。
我一直在寻找文档中的几个小时,并且无法找到如何将表单字段分布在两列上的方法。
查看此示例here
helper = FormHelper()
helper.form_class = 'form-horizontal'
helper.layout = Layout(
Field('text_input', css_class='input-xlarge'),
Field('textarea', rows="3", css_class='input-xlarge'),
'radio_buttons',
...
)
我可以看到如何设置外观序列。但布局仍然没有区别{{ form.as_p }}
。我希望我在这里缺少一些东西,否则使用这个附加组件几乎没用?
答案 0 :(得分:2)
确保包含引导程序css文件,将应用程序添加到INSTALLED_APPS
。
然后,您必须在模板中添加{% load crispy_forms_tags %}
的django-crispy-forms标记,最后按照示例中的{% crispy form %}
进行操作。您链接的示例中显示的所有内容。这应该产生一种水平形式。
没有接近as_p
,这是一个可自定义的布局,不需要编写模板,这非常容易出错。 These slides可能会对您有所帮助。
答案 1 :(得分:0)
我只是简单地使用了django-crispy-forms
,并没有将它与表单助手一起使用。下面是使用mako-templates编写的,但是您应该能够轻松地将其转换为django模板。
<form class="form-horizontal">
<fieldset>
%if form.non_field_errors():
<div class='alert alert-error'>${form.non_field_errors()}</div>
%endif
${form.as_crispy}
<div class="form-actions">
<button type="submit" class="btn btn-primary" id="some-id">
Find
</button>
<button type="reset" class="btn" id="clear-filter">
Clear
</button>
</div>
</fieldset>
</form>
使用fieldsets渲染表单,这几乎是使用twitter-bootstrap呈现表单的默认方式。如果默认渲染不适合您,请仅使用帮助程序(我认为..)。我没有