2013-03-06 9 views
10

:私はこの上Pylintを実行するとジャンゴforms.ModelForm、Pylint、および新しい/古いスタイルのクラス

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

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

は、私はこのエラーを取得します:

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

は、私は、これはDjangoのforms.ModelFormは、古いスタイルのクラスであり、 python docs私のコールあたりのスーパー起きていないし、したがって、余分であることを意味すると仮定します。これは本当ですか?効果なくスーパーコールを削除できますか?

答えて

6

このエラー/警告はのModelFormクラスとは何の関係もないし、としなければならない。

class Meta: 
     fields =() 
     model = Bid 

あなただけの警告を抑止する必要があります。

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

代わりに新しいスタイルのクラス、つまり 'class Meta(オブジェクト): '、[この回答](http://stackoverflow.com/a/2007514/1226722)によると。 – gregoltsov

9

いいえ、それは間違いないが、この場合は間違っている。 ModelFormは新しいスタイルクラスであり、スーパーが必要です。

+0

おかげで - 私はのModelFormと思ったが新しいスタイルだったと私はちょうど何かが不足していたと思った。私はPylintが問題を提出する方法を持っていたが、私はそうする方法を見つけることができないと思う。... – Erik

+1

@Erikのマンページに '[email protected]。 org'。 – wRAR

+0

PylintバグレポートがBitbucketで管理されるようになりました。私はこの問題をオープンしました:https://bitbucket.org/logilab/pylint/issue/24/e1002-message-for-djangoformsmodelform –

関連する問題