NoReverseMatch at /info/1
весь день пытался понять почему выдаёт ошибку: NoReverseMatch at /info/1 Reverse for 'like_book' with arguments '(None,)' not found. 1 pattern(s) tried: ['like/(?P[0-9]+)\Z']
views.py
def LikeView(request, pk):
book = get_object_or_404(BookModel, id=request.POST.get('book_id'))
book.likes.add(request.user)
return redirect('more_info', pk=pk)
html
{% csrf_token %}
<button type="submit" name="book_id" value="{{ book.id }}" class="btn btn-danger btn-sm">Like</button>
</form>
urls.py
urlpatterns = [
path('', index, name='index'),
path('allbook', AllBookView.as_view(), name='allbook'),
path('addbook', AddBookView.as_view(), name='addbook'),
path('register', RegisterView.as_view(), name='reg'),
path('login', LoginView.as_view(), name='login'),
path('logout', LogoutView.as_view(), name='logout'),
path('info/<int:id>', MoreInfoView.as_view(), name='more_info'),
path('profile', profileview, name='profile'),
path('password-change', ChangePasswordView.as_view(), name='change_pass'),
path('like/<int:pk>', LikeView, name='like_book')
]
А если измените эту строку вот так. Будет работать?
book = get_object_or_404(BookModel, id=pk)
и тут вот так redirect('more_info') без pk=pk