Django forms.ModelForm,Pylint和new / old style类

时间:2013-03-06 20:39:55

标签: python django pylint

我有一个Django 1.5表单,看起来像这样(简化):

class BidForm(forms.ModelForm):
    class Meta:
        fields = (
        )
        model = Bid

    def __init__(self, *args, **kwargs):
        super(BidForm, self).__init__(*args, **kwargs)
        something()

当我对此运行Pylint时,我收到此错误:

E1002:<line,row>:BidForm.__init__: Use of super on an old style class

我认为这意味着Django的形式.ModelForm是一个旧式的类,根据python docs我对super的调用没有发生,因此是无关紧要的。这是真的?我可以删除超级通话吗?

2 个答案:

答案 0 :(得分:9)

没有。尽管Pylint很棒,但它绝对不是万无一失的,在这种情况下它只是错了。 ModelForm是一个新的样式类,需要super。

答案 1 :(得分:6)

此错误/警告与ModelForm类无关,与以下内容有关:

    class Meta:
        fields = ()
        model = Bid

您只需要取消警告:

    class Meta:  # pylint: disable=C1001
        fields = ()
        model = Bid