Вы неправильно поняли, как использовать super()
.Вы передаете текущий класс и экземпляр или класс для второго аргумента, а не объект request
.Результатом этого вызова является специальный объект, который знает, как найти и связать атрибуты в родительских классах, игнорируя текущий класс.
В контексте staticmethod
вы должны передать текущий класс как оба аргумента :
class Estatisticas(DatasetRequired):
@staticmethod
def get(request):
super(Estatisticas, Estatisticas).get(request)
# <do various other stuff>
Я действительно не уверен, почему вы используете staticmethod
здесь.При обработке запроса для представления создается специальный экземпляр, поэтому обычно вы используете обычные методы экземпляра .На этом этапе в Python 3 вы можете использовать super()
без аргументов:
class DatasetRequired(View):
def get(self, request):
# <redirects the user>
class Estatisticas(DatasetRequired):
def get(self, request):
super().get(request)
# <do various other stuff>
В Python достаточно контекста, чтобы понять, что super()
нужны Estatisticas
и self
в качестве аргументов без васназвать их.