在Django中使用crispy更改字段大小

时间:2019-05-17 11:42:08

标签: django forms bootstrap-4

我的模板非常简单。我想更改其大小。Converting between C# List and F# List

您该怎么做?通过在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 +。

1 个答案:

答案 0 :(得分:0)

评估模板时,在{{...}}之间指定的变量将被HTML DOM中的“ input”元素替换。您要使用Bootstrap 4类“ form-control-lg”或样式属性(例如“ line-height”)来渲染此“ input”元素,这将更改元素的高度。

crispy-forms允许您通过forms.py

完成所有操作

具体来说,您可以使用crispy_forms.layout模块中的Layout类来更改使用明快表单呈现表单字段的方式。有关详细信息,请参见here(在crispy-forms文档中)。

在您的情况下,您需要(1)将FormHelper添加到您的表单中; (2)在您的助手中添加一个布局; (3)使用“字段”布局对象在任何字段上设置属性。

因此您可以像这样更改form.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)