【问题标题】:How to spread form fields on two column layout in django-crispy-forms?如何在 django-crispy-forms 的两列布局上传播表单字段?
【发布时间】:2012-07-03 02:01:23
【问题描述】:

我收到了一些使用 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 }} 没有什么不同。我希望我在这里遗漏了一些东西,否则使用这个插件几乎没有用处?

【问题讨论】:

    标签: django twitter-bootstrap django-crispy-forms


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我只是简单地使用了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-06-16
        • 2013-07-21
        • 2019-12-31
        • 1970-01-01
        • 2012-04-16
        • 2012-11-10
        • 2021-05-29
        • 2014-12-21
        • 1970-01-01
        相关资源
        最近更新 更多