Как добавить декоратор в представление на основе класса в django

У меня есть представление на основе класса signup в моем приложении аутентификации django. Я создал новый файл:

decorators.py

from django.shortcuts import redirect


def authenticated_user(view_func):
    def wrapper_func(request, *args, **kwargs):
        if not request.user.is_authenticated:
            return view_func(request, *args, **kwargs)
        else:
            return redirect('/')

    return wrapper_func

и на мой взгляд, у меня есть:

from .decorators import authenticated_user
class Signup(View):
   @authenticated_user
   def get(request):
       ...

И это приводит к ошибке:

AttributeError at /accounts/signup-professor/
'ProfessorRegister' object has no attribute 'user'

Но если я добавляю тот же декоратор в представление, основанное на функции, он работает. Почему это происходит и как это исправить?

Вернуться на верх