当我们有时写modelForm时需要批量添加bootstrap样式,此时就可以用下面这种简单的方式:
表单批量添加样式
from django import forms
from auc import models as auc_models
class BootstrapModelForm(forms.ModelForm):
"""为form表单批量添加bootstrap样式"""
exclude_bootstrap_field = [] # 排除的字段
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields:
if field in self.exclude_bootstrap_field:
continue
old_class = self.fields[field].widget.attrs.get('class', '')
self.fields[field].widget.attrs["class"] = old_class + ' form-control'
class AuctionModelForm(BootstrapModelForm):
exclude_bootstrap_field = ['cover', ]
class Meta:
model = auc_models.Vendue
fields = ['title', 'cover', 'start_time', 'cash_deposit']