Проблема с Django formview, не удается добавить форму в детальное представление

У меня проблема с установкой классов detail view и form view в django, когда я пытаюсь нажать кнопку send в моей экзаменационной форме django выкидывает эту ошибку: AttributeError: 'TestDetails' object has no attribute 'object'

class TestDetails(DetailView, FormView):
model = Test
form_class = QuestionForm
context_object_name = 'test'
pk_url_kwarg = 'test_id'
template_name = 'app/views/test_details.html'

def get_context_data(self, **kwargs):
    test_id = self.kwargs.get('test_id')
    context = super().get_context_data(**kwargs)
    context['title'] = f'Тест - {test_id}'
    context['questions'] = Question.objects.filter(test_id=test_id)
    return context

def form_valid(self, form):
    print(form.cleaned_data)
    return super().form_valid(form)

def form_invalid(self, form):
    print(form.cleaned_data)
    return super().form_invalid(form)
And this is a full traceback

    Internal Server Error: /tests/1
Traceback (most recent call last):
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\.venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\.venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\.venv\lib\site-packages\django\views\generic\base.py", line 104, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\.venv\lib\site-packages\django\views\generic\base.py", line 143, in dispatch
    return handler(request, *args, **kwargs)
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\.venv\lib\site-packages\django\views\generic\edit.py", line 153, in post
    return self.form_invalid(form)
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\cryptosite_server\app\views.py", line 98, in form_invalid
    return super().form_invalid(form)
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\.venv\lib\site-packages\django\views\generic\edit.py", line 67, in form_invalid
    return self.render_to_response(self.get_context_data(form=form))
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\cryptosite_server\app\views.py", line 87, in get_context_data
    context = super().get_context_data(**kwargs)
  File "C:\Users\User\OneDrive\Рабочий стол\PycharmProjects\cryptosite\.venv\lib\site-packages\django\views\generic\detail.py", line 95, in get_context_data
    if self.object:
AttributeError: 'TestDetails' object has no attribute 'object'

Вообще-то, я не знаю, как решить эту проблему

Я думаю, что поскольку вы смешали DetailView и FormView вместе, это может быть причиной этого,

def get_context_data(self, **kwargs):
   context = super().get_context_data(**kwargs)
   test_id = context['test'].id 
   context['title'] = f'Тест - {test_id}'
   context['questions'] = Question.objects.filter(test_id=test_id)
   return context
Вернуться на верх