Get_context_data() missing 1 required positional argument: 'request'

У меня возникла проблема, когда я пытаюсь перенаправить из представления на основе класса без 'redirect' в def get_context_data, я получаю ошибки типа 'str' object has no attribute 'user'. поэтому я думаю, что лучший способ решить это - добавить request как параметр в get_context_data. но я получаю ошибку заголовка.

Вот мои взгляды:

class EstandarViews:
    '''Vistas usuario Estandar'''

    @staticmethod
    def estandar_home(request):
        ''' Vista del home de estandar '''
        return render(request, "pages/editor-estandar/home.html")


class EditorEstandarView(LoginRequiredMixin, TemplateView):
    template_name = "pages/editor-estandar/estandar.html"

    def get_context_data(self, request, **kwargs):
        user = self.request.user
        print("usuario: ", user)
        if not self.request.user.groups.filter(name="Editor-Estandar").exists():
            print("no puedes estar aqui")
            return redirect('/home/')

        context = super().get_context_data(**kwargs)
        context["sedes"] = Sede.objects.values("nombre", "id")
        context["recintos"] = Recinto.objects.values("id", "codigo", "nombre")
        context["carreras"] = Carrera.objects.values("id", "codigo", "nombre")
        return context

        editor_estandar_view = EditorEstandarView.as_view()

в ваших представлениях удалите запрос, а затем попробуйте

class EditorEstandarView(LoginRequiredMixin, TemplateView):
template_name = "pages/editor-estandar/estandar.html"

    def get_context_data(self, **kwargs):
    user = self.request.user
    print("usuario: ", user)
    if not self.request.user.groups.filter(name="Editor-Estandar").exists():
        print("no puedes estar aqui")
        return redirect('/home/')

    context = super().get_context_data(**kwargs)
    context["sedes"] = Sede.objects.values("nombre", "id")
    context["recintos"] = Recinto.objects.values("id", "codigo", "nombre")
    context["carreras"] = Carrera.objects.values("id", "codigo", "nombre")
    return context

    editor_estandar_view = EditorEstandarView.as_view()

get_context_data - это метод, поэтому текущий экземпляр всегда передается ему неявно интерпретатором, который обычно называется self.

и, пожалуйста, прочитайте полную документацию по представлениям https://docs.djangoproject.com/en/3.2/topics/class-based-views/#:~:text=A%20view%20is%20a%20callable, by%20harnessing%20inheritance%20and%20mixins.

get_context_data метод не принимает запрос в аргументах.

Должно быть get_context_data(self, **kwargs)

Если вы хотите иметь доступ к запросу внутри get_context_data просто используйте self.request

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