nan xiao
nan xiao

Reputation: 3

Reverse for 'index' with arguments '()' and keyword arguments '{'request': <WSGIRequest: POST '/search/'>}' not found. 0 pattern(s) tried: []

I have a question:

Why is this error? Reverse for 'index' with arguments '()' and keyword arguments '{'request': }' not found. 0 pattern(s) tried: []

views.py
def index(request):
...
def book(request, cate):
...
def search(request):
    if request.method == 'POST':
        searchbooktitle = request.POST.get('search')
        print(searchbooktitle)
        try:
            searchbook = Book.objects.filter(title__contains=searchbooktitle)
            return redirect(book, request=request, cate=searchbook.pk)
        except:
            print(request)
            return redirect(index, request=request)
    return redirect(index, request=request)

urls.py
urlpatterns = [
    url(r'^index/$', views.index, name='index'),
    url(r'^book/(?P<cate>[a-zA-Z]+)/$', views.book, name='book'),
    url(r'^chapter/(?P<pk>[0-9]+)/$', views.chapter, name='chapter'),
    url(r'^content/(?P<bookpk>[0-9]+)/(?P<chapterpk>[0-9]+)/$', views.content, name='content'),
    url(r'^search/$', views.search, name='search'),
]


Traceback Switch to copy-and-paste view

D:\Django1.8_env\lib\site-packages\django\core\handlers\base.py in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
D:\Djangodemo\bookmarks\account\views.py in search
return redirect('index', request=request) ...
▶ Local vars

Upvotes: 0

Views: 535

Answers (1)

Arpit Svt
Arpit Svt

Reputation: 1203

You should not pass request in redirect. Change return redirect(index, request=request) to return redirect('/index/')
Please refer to https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/#django.shortcuts.redirect to learn more about redirect.

Upvotes: 1

Related Questions