Django - получение Ошибка Reverse for 'book' with arguments '(1,)' not found. 1 pattern(s) tried: ['<int:flight_id/book\\\Z']

Я изучаю фреймворк Django. Сегодня я пытался получить URL в шаблоне HTML с помощью

<form action="{% url 'book' flight.id %}" method="post">

Также у меня есть книга функций. Вот код:

def book(request,flight_id):
   if request.method=="POST":
        flight=Flight.objects.get(pk=flight_id)
        passenger=Passenger.objects.get(pk=int(request.POST["passenger"]))
        passenger.flights.add(flight)
        return HttpResponseRedirect(reverse("flight",args=(flight.id,)))

А это файл urls.py :

urlpatterns = [
    path("",views.index,name="index"),
    path("<int:flight_id>",views.flight,name="flight"),
    path("<int:flight_id/book",views.book,name="book")
]

Но я не знаю, почему он показывает ошибку:

Не найдено обратного соответствия в /1 Не найдено обратного соответствия для 'book' с аргументами '(1,)'. 1 pattern(s) tried: ['<int:flight_id/book\Z']

Ваш шаблон url книги не верен, есть небольшая ошибка. Вам не хватает сцепления > здесь path("<int:flight_id/book",views.book,name="book"). Это должно выглядеть следующим образом

urlpatterns = [
    path("",views.index,name="index"),
    path("<int:flight_id>",views.flight,name="flight"),
    path("<int:flight_id>/book",views.book,name="book")
]
Вернуться на верх