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")
]