2

我收到了一些使用 django-crispy-forms 在 Django 中创建表单的建议。

我一直在寻找文档几个小时,但无法弄清楚如何将表单字段分布在两列中。

在这里看这个例子

        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 }}。我希望我在这里遗漏了一些东西,否则使用这个附加组件几乎没有用处?

4

2 回答 2

3

确保包含引导 css 文件,将应用程序添加到INSTALLED_APPS.

然后你必须{% load crispy_forms_tags %}在你的模板中包含 django-crispy-forms 标签,最后{% crispy form %}像示例中那样做。您链接的示例中显示的所有内容。这应该产生一个水平的形式。

没有什么接近的as_p,这是一个可自定义的布局,无需编写模板,非常容易出错。这些幻灯片可能会对您有所帮助。

于 2012-07-03T10:47:00.387 回答
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>

这使用字段集呈现表单,这几乎是使用 twitter-bootstrap 呈现表单的默认方式。如果默认渲染不适合您,请仅使用助手(我认为..)。我没有

于 2012-07-03T05:08:15.563 回答