django_project_demo/app/utils/bootstrap.py

32 lines
954 B
Python
Raw Normal View History

2024-08-24 11:25:23 +08:00
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