這是很容易在基於類的形式來做。來自我的項目的例子,form-control是一個css類。
from django.forms import ModelForm, TextInput
class ServerForm(ModelForm):
class Meta:
model = Server
fields = ['name', 'ip', 'port']
widgets = {
'name': TextInput(attrs={'class': 'form-control'}),
'ip': TextInput(attrs={'class': "form-control"}),
'port': TextInput(attrs={'class': 'form-control'}),
}
然後,我有模板的樣子:
{% for field in form %}
<div class="form-group">
{{ field.label_tag }} {{ field }}
</div>
{% endfor %}
產生
<form method="POST">
<input type="hidden" name="csrfmiddlewaretoken" value="xxxxxx">
<div class="form-group">
<label for="id_name">Name:</label>
<input class="form-control" id="id_name" maxlength="64" name="name" type="text">
</div>
<div class="form-group">
<label for="id_ip">Ip:</label>
<input class="form-control" id="id_ip" maxlength="20" name="ip" type="text">
</div>
<div class="form-group">
<label for="id_port">Port:</label> <input class="form-control" id="id_port" name="port" type="text">
</div>
<div class="form-group">
<button type="submit" class="save btn btn-default">Add/Edit Server</button>
</div>
</form>
的關鍵是元類的部件領域。在那裏你可以定義你想使用的django.forms中的哪個小部件,然後可以定義你想要的任何attrs。這裏我們使用'class'並將其參數設置爲'form-control'。因爲你想,你可以很容易地取代許多CSS類,即
'name': TextInput(attrs={'class': 'form-control xs my-other-css-class'}),
我用這個自舉經常和它工作得很好,只要你輸入引導沿線某處(無論是從Django的引導插件,或者只是通過基本模板中的靜態文件)