将django基类子类化为中间类是一个坏主意吗?

时间:2014-01-14 12:15:27

标签: python django django-forms

我已将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'

我不是在寻找意见,只是一个坚实的“最佳实践”答案

1 个答案:

答案 0 :(得分:2)

不,这是一个坏主意,这是非常正常的'最佳实践'Django。

ModelForm是Django的核心部分,放弃它是非常不可想象的。

典型的Django项目将有许多来自Django基类的子类。

我的项目中经常会有一个应用程序我调用core,或类似的东西,我保留了一些类BaseModelBaseForm等我定制了一些行为希望由我所有项目的子类继承。