32 lines
954 B
Python
32 lines
954 B
Python
|
from django import forms
|
|||
|
|
|||
|
"""
|
|||
|
这两个类是实现前端显示输入控件的样式与Bootstrap保持一致
|
|||
|
"""
|
|||
|
|
|||
|
class Bootstrap:
|
|||
|
"""
|
|||
|
定义Bootstrap基类,让所有表单控件的class都继承这个类,减少代码量
|
|||
|
"""
|
|||
|
|
|||
|
exclude_filed = [] # 过滤字段不让引用Bootstrap样式
|
|||
|
|
|||
|
# 给所有表单控件添加属性
|
|||
|
def __init__(self, *args, **kwargs):
|
|||
|
super().__init__(*args, **kwargs)
|
|||
|
for name, field in self.fields.items():
|
|||
|
# 判断要过滤掉的字段
|
|||
|
if name in self.exclude_filed:
|
|||
|
continue
|
|||
|
# 如果表单控件中本来就有值,就追加属性
|
|||
|
if field.widget.attrs:
|
|||
|
field.widget.attrs["class"] = "form-control"
|
|||
|
else:
|
|||
|
field.widget.attrs = {"class": "form-control"}
|
|||
|
|
|||
|
class BootstrapModelForm(Bootstrap, forms.ModelForm):
|
|||
|
pass
|
|||
|
|
|||
|
class BootstrapForm(Bootstrap, forms.Form):
|
|||
|
pass
|