10

我有一个看起来像这样(简化)的 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 的 forms.ModelForm 是一个老式类,并且根据python 文档,我对 super 的调用没有发生,因此是无关的。这是真的?我可以只删除超级调用而没有效果吗?

4

2 回答 2

9

不。Pylint,尽管它很棒,但远非万无一失,在这种情况下,它只是弄错了。ModelForm 是一个新的样式类,需要超类。

于 2013-03-06T20:43:13.180 回答
6

此错误/警告与 ModelForm 类无关,与:

    class Meta:
        fields = ()
        model = Bid

您只需要抑制警告:

    class Meta:  # pylint: disable=C1001
        fields = ()
        model = Bid
于 2013-09-28T22:57:43.880 回答