Django не может получить доступ к URL Pk из класса FormView
Я создаю простой проект, связанный с медициной, который позволяет пользователю заказывать лабораторные анализы для пациента. На экране пациента они выбирают Order Tests. UrlPattern, включающий pk пациента, вызывает OrderTestsView, которое является FormView. В kwargs этого представления нет pk, хотя он есть в Url. Я использую FormView, потому что мне нужно получить доступ к списку тестов, выбранных в Forms MultipleModelsChoice. Но мне нужна информация о пациенте до того, как будет выбрана форма заказа, потому что я должен отобразить информацию о пациенте в верхней части экрана заказа. Обычно я использую get_context_data, чтобы сделать все это, но kwargs пусты. Не уверен, почему FormView игнорирует параметр pk, но как мне это исправить?
urls.py
path('order-tests/<pk>/', OrderTestsView.as_view(), name='order-tests'),
forms.py
class TestOrderForm(forms.Form):
choice = forms.ModelMultipleChoiceField(Universal_Test_File.objects.all().order_by('test_name'), to_field_name="service_id")
view.py
class OrderTestsView(FormView):
model = Universal_Test_File
form_class = TestOrderForm
success_url = '/list_tests/'
template_name = "lab/order_tests.html"
patient = get_object_or_404(Patient, pk) ***## CANNOT ACCESS PK***
def form_valid(self, form):
choice = form.cleaned_data.get("choice")
if choice:
for test in choice:
print(test.service_id, test.test_name)
patient = get_object_or_404(Patient, pk=self.kwargs['pk']) в get_context_data работает. Не уверен, как я это пропустил?