Python NoReverseMatch at allbook 未找到带有参数 '('',)' 的 'random_book' 的反向.try 了 1 种模式:['info(P[09]+)\\Z']
找不到参数为"("",)"的"random_book"的/allbook Reverse的NoReverseMatch.try 了1个模式:['info/(?P[0-9]+)\Z']
意见.py
class MoreInfoView(View):
def get(self, request, id):
book_info = BookModel.objects.filter(id=id).first()
stuff = get_object_or_404(BookModel, id=self.kwargs['id'])
total_likes = stuff.total_likes()
return render(request, 'bookapp/more_info.html', context={
'id': id,
'book_info': book_info,
'book': BookModel,
'total_likes': total_likes,
})
def random_book(self):
book_pks = list(BookModel.objects.values_list('id', flat=True))
pk = random.choice(book_pks)
book = BookModel.objects.get(pk=pk)
return HttpResponse(book)
html
<li class="navigation"><a class="nav-link" href="{% url 'random_book' pk %}">random</a></li>
网址.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'),
path('info/<int:pk>', views.random_book, name='random_book'),