Метод Post Method не разрешен в методе отправки CBV, когда форма недействительна

При создании представления с помощью класса FormView и использовании метода dispatch для получения некоторых данных во время инициализации класса, возникает ошибка, когда форма становится недействительной

{'detail': ErrorDetail(string='Method "POST" not allowed.', code='method_not_allowed')}
<
class TestView(LoginRequiredMixin,FormView):
    form_class = TestForm
    template_name = 'test.html'

   def dispatch(self, request, *args, **kwargs):
        self.data = TestViewSet.as_view({'get': 'list'})(self.request).data
        return super(TestView, self).dispatch(request, *args, **kwargs)


    def get_context_data(self, **kwargs):
        context = super(CredentialsView, self).get_context_data(**kwargs)
        if self.request.user.is_authenticated:
            context['username'] = self.data['username']
            context['firstname'] = self.data['firstname']
            context['lastname'] = self.data['lastname']
            
        return context

        
    def form_valid(self, form):
        password = form.cleaned_data['password']
        if form.is_valid():
            return self.query_api(password)
        else:
            return super(TestView, self).form_valid(form)

Вот след :-

django: {'detail': ErrorDetail(string='Метод "POST" не разрешен.', code='method_not_allowed')} Traceback (последний последний вызов): Файл "/usr/local/lib/python3.6/dist-packages/django/core/handlers/exception.py", строка 34, in inner response = get_response(request) Файл "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py", строка 115, в _get_response response = self.process_exception_by_middleware(e, request) Файл "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py", строка 113, в _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) Файл "/usr/local/lib/python3.6/dist-packages/django/views/generic/base.py", строка 71, in view return self.dispatch(request, *args, **kwargs) Файл "/usr/local/lib/python3.6/dist-packages/django/contrib/auth/mixins.py", строка 52, in dispatch return super().dispatch(request, *args, **kwargs) Файл "/usr/local/lib/python3.6/dist-packages/django/views/generic/base.py", строка 97, в dispatch return handler(request, *args, **kwargs) Файл "./ssh/views.py", строка 91, в post return self.form_invalid(form, **kwargs) Файл "./ssh/views.py", строка 77, in form_invalid context = self.get_context_data(**kwargs) Файл "./ssh/views.py", строка 97, in get_context_data kwargs['username'] = data['username'] KeyError: 'username'

.

Как инициализировать представление в приведенном выше сценарии, чтобы установить данные для контекста?

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