【问题标题】:Using crispy in Django to change the field size在 Django 中使用crispy 更改字段大小
【发布时间】:2019-10-04 17:52:45
【问题描述】:

我的模板有一个非常简单的表单。我想改变它的大小。

你怎么能做到这一点?通过在我的 forms.py 文件中添加一个小部件或在我的模板中添加某个类?

我的模板:

              <form method="POST">
                {% csrf_token %}
                <div class="form-row">
                  <div class="form-group col-md-12 mb-0">
                    {{ basic_form.choices_product|as_crispy_field }}
                  </div>
                </div>
                <button type="submit" class="btn btn-lg btn-block btn-danger">Wyszukaj <i class="fas fa-heart fa-lg"></i></button>
              </form>

我在互联网上寻找信息,但无济于事。

我使用 Bootstrap 4、Django 2+。

【问题讨论】:

    标签: django forms bootstrap-4


    【解决方案1】:

    评估您的模板时,在您的 {{ ... }} 之间指定的变量将替换为 HTML DOM 中的“输入”元素。您想使用 Bootstrap 4 类“form-control-lg”或样式属性(如“line-height”)呈现此“输入”元素,这将改变元素的高度。

    crispy-forms 允许您从 forms.py 中完成所有这些操作

    具体来说,您可以使用 crispy_forms.layout 模块中的 Layout 类来更改表单字段的呈现方式。完整的详细信息在crispy-forms 文档中提供here

    在您的情况下,您需要 (1) 在表单中添加一个 FormHelper; (2) 为你的助手添加一个布局; (3) 使用Field布局对象设置任意字段的属性。

    所以你可以像这样改变forms.py:

    from crispy_forms.helper import FormHelper
    from crispy_forms.layout import Layout, Field
    
    from django import forms
    
    class BasicForm(forms.Form):
         [...] # Define your fields here
         def__init__(self, *args, **kwargs):
                # Add a FormHelper
                self.helper = FormHelper()
                # Add a layout to your helper
                self.helper.layout = Layout(
                    # Use the Field layout object to set attributes on 
                    # choices_product field. type="text" should be there by
                    # default if you have used a CharField or TextField.
                    Field(
                        'choices_product', css_class="form-control form-control-lg", id="exampleInputSize3", placeholder=".form-control-lg",
                    )
                )
            super(BasicForm, self).__init__(*args, **kwargs)
    

    【讨论】:

    • 感谢您的回答。我训练了它,但是我仍然没有效果。 Haw it bean 在我的脆表中寻找像这样的输入 ?跨度>
    • 要在您的输入元素中获取该组属性,您可以使用来自 Krispy_forms.layout 的字段布局对象,正如我在第一个回复中提到的那样。我已经编辑了响应以显示您将如何在输入元素中获取这些特定属性。
    猜你喜欢
    • 2012-05-22
    • 2013-03-05
    • 2014-05-09
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多