一尘不染

引导样式应用于Django表单

django

我想使用引导程序来获得不错的网站设计,但是不幸的是,我不知道表单字段的样式。我在说这个:

<form class="form-horizontal" method="POST" action="."> {% csrf_token %}
  {{ form.title.label }}
  {{ form.title }}
</form>

应该如何设计呢?我尝试了这个:

<form class="form-horizontal" method="POST" action="."> {% csrf_token %}
  <div class="form-control">
    {{ form.title.label }}
    {{ form.title }}
  </div>
</form>

这显然没有给我想要的结果。

如何将引导样式应用于Django表单?


阅读 347

收藏
2020-03-26

共1个答案

一尘不染

如果你不想使用第三方工具,那么从本质上讲,你需要向类中添加属性,我更喜欢通过使模型表单继承自一个基类来实现。

class BootstrapModelForm(ModelForm):
    def __init__(self, *args, **kwargs):
        super(BootstrapModelForm, self).__init__(*args, **kwargs)
        for field in iter(self.fields):
            self.fields[field].widget.attrs.update({
                'class': 'form-control'
            })

可以轻松调整…但是如你所见,我所有的字段小部件都已应用了表单控件css类

你可以根据需要将其扩展到特定的字段,这是一个继承的表格示例,该表格应用了属性

class MyForm(BootstrapModelForm):
    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['name'].widget.attrs.update({'placeholder': 'Enter a name'})
2020-03-26