Нужна помощь по перенаправлению представлений в Django

Я новичок в изучении Django и столкнулся с проблемой, в которой нужна помощь каждого.

Я работаю над веб-приложением для чтения романов. Я столкнулся с проблемой, связанной с перенаправлением представлений в Django. Дело в том, что я могу открыть страницу главы, на которую я кликнул, и читать ее совершенно нормально, но когда я хочу вернуться на индексную страницу романа, кликнув на ссылку, я встречаюсь с ошибкой NoReverseMatch. Я размещу свой код ниже:

Вот что я настроил в urls.py:

Затем я создал и настроил urls.py следующим образом:

А это мой views.py:

Часть, с которой я столкнулся с проблемой - это Html страница для просмотра главы:

По моему замыслу, нажав на url, я буду перенаправлен на индексную страницу романа. Но случилось так, что я столкнулся с ошибкой NoReveseMatch, потому что часть, которая должна иметь slug, указывающий на индексную страницу, пуста, поэтому я не могу перенаправить на нее.

У кого-нибудь есть идеи, что я сделал не так? Любая помощь или предложения будут приняты с благодарностью

Вам необходимо исправить url

Вы можете передать url в django html следующим образом...

href='{% 'book' book.slug %}'

-------- OR ---------

href='book/book.slug/'

Темплаттег url принимает в качестве первого аргумента имя url (т.е. значение, которое вы передаете параметру name при определении пути). Если сам путь url требует аргументов, то они включаются в url templatetag после имени.

Похоже, что вы пытаетесь связать первый путь с именем 'book_detail'? Если это так, вы должны использовать {% url 'book_detail' book.slug %}.

Прочитайте документацию url templatetag для лучшего понимания того, как это работает.

Кроме того, у вас есть два разных пути с именем 'book_detail'. Имена путей должны быть уникальными в пределах одного приложения.

Наконец, вы должны поместить свой код непосредственно в тело вопроса, а не включать скриншоты.

Вернуться на верх