我已将ModelForm子类化为中间ModelForm2,以确保某些表单元素具有某些css类/小部件并删除标签后缀。 我的问题是: 这是一个坏主意,因为它使代码不那么便携,以防它们丢弃ModelForm类? 这是代码:
class ModelForm2(forms.ModelForm):
def __init__(self, *args, **kwargs):
kwargs.setdefault('label_suffix', '')
super(ModelForm2, self).__init__(*args, **kwargs)
for field in self.fields:
if isinstance(self.fields[field], forms.DateField):
self.fields[field].format = '%d/%m/%Y'
self.fields[field].widget.attrs['class'] = 'date'
self.fields[field].widget.attrs['type'] = 'text'
我不是在寻找意见,只是一个坚实的“最佳实践”答案
答案 0 :(得分:2)
不,这是不一个坏主意,这是非常正常的'最佳实践'Django。
ModelForm
是Django的核心部分,放弃它是非常不可想象的。
典型的Django项目将有许多来自Django基类的子类。
我的项目中经常会有一个应用程序我调用core
,或类似的东西,我保留了一些类BaseModel
,BaseForm
等我定制了一些行为希望由我所有项目的子类继承。