Django forms.ModelForm, 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 forms.ModelForm - это класс старого стиля и для python docs мой призыв к супер не происходит и, следовательно, является посторонним. Это правда? Могу ли я просто удалить супер-вызов без эффекта?
Ответы
Ответ 1
Эта ошибка/предупреждение не имеет ничего общего с классом ModelForm и имеет отношение к:
class Meta:
fields = ()
model = Bid
Вам просто нужно подавить предупреждение:
class Meta: # pylint: disable=C1001
fields = ()
model = Bid
Ответ 2
Нет. Пилинт, несмотря на это, далек от непогрешимости, и в этом случае он просто ошибся. ModelForm - это новый класс стиля и супер.