Не удается найти экземпляр модели django в новом представлении

У меня есть CreateView, в котором пользователи вводят данные, после отправки формы пользователь должен перейти в DetailView для только что отправленной записи. Я хочу использовать UUID для идентификации записей - но после отправки формы я получаю следующую ошибку:

http://localhost:8000/patient/2792470c-216a-44cc-a4ef-98c12d946844/
NO patient found matching the query

Вот основная структура проекта:

models.py:

class Patient(TimeStampedModel):
    # get a unique id for each patient 
    patient_id = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False)

    name = models.CharField("Patient Name", max_length=255)

views.py

class PatientCreateView(LoginRequiredMixin, CreateView):
    model = Patient
    fields = ['name']

    def form_valid(self, form):
        form.instance.creator = self.request.user
        return super().form_valid(form)
    
    def get_success_url(self):
        return reverse('patient:detail',
                       kwargs={"slug": self.object.patient_id})


class PatientDetailView(DetailView):
    model = Patient

urls.py

urlpatterns = [
    path(
        route='add/',
        view=views.PatientCreateView.as_view(),
        name='add'),
    
    path(
        route='<slug:slug>/',
        view=views.PatientDetailView.as_view(),
        name='detail'),
]

Пожалуйста, не мог бы кто-нибудь попытаться указать, где я ошибаюсь?

Вам нужно добавить поле slug_field в DetailView:

class PatientDetailView(DetailView):
    model = Patient
    slug_field = "patient_id"
Вернуться на верх