Нужна помощь по перенаправлению представлений в Django
Я новичок в изучении Django и столкнулся с проблемой, в которой нужна помощь каждого.
Я работаю над веб-приложением для чтения романов. Я столкнулся с проблемой, связанной с перенаправлением представлений в Django. Дело в том, что я могу открыть страницу главы, на которую я кликнул, и читать ее совершенно нормально, но когда я хочу вернуться на индексную страницу романа, кликнув на ссылку, я встречаюсь с ошибкой NoReverseMatch. Я размещу свой код ниже:
Затем я создал и настроил urls.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'. Имена путей должны быть уникальными в пределах одного приложения.
Наконец, вы должны поместить свой код непосредственно в тело вопроса, а не включать скриншоты.