Django Create View URL конфликтует с Single View URL

Мой файл url.py выглядит следующим образом.

urlpatterns = [
path('', views.loans, name='loans'),
path('loans/<str:pk>/', views.loan, name='loan'),
path('loans/create/', views.create_loan, name='create-loan'),
]

Когда я пытаюсь получить доступ к маршруту loans/create, Django выбрасывает следующее исключение.

ValidationError at /loans/create/
['“create” is not a valid UUID.']

Похоже, что Django передает 'create' в 'loans/<str:pk>/'

Как я могу решить эту проблему?

Заранее спасибо.

Шаблоны

URL перебираются по порядку, и возвращается первое совпадение, параметр pk в вашем loan url всегда будет соответствовать строке "create". Вам нужно поменять их местами, чтобы url create проверялся первым

urlpatterns = [
    path('', views.loans, name='loans'),
    path('loans/create/', views.create_loan, name='create-loan'),
    path('loans/<str:pk>/', views.loan, name='loan'),
]
Вернуться на верх