Django: «HttpResponseRedirect (reverse ())» перенаправляет на ту же страницу - PullRequest
0 голосов
/ 16 марта 2020

HttpResponseRedirect(reverse('success')) приводит к той же странице, которая запрашивалась с измененным URL.

просмотров

def dashboard_tools(request):
    ...
    if request.method == "POST":
        ...
        return render(request, "tools/loading.html", {})
        # return redirect('success')
        # return HttpResponseRedirect(reverse('success'))

    return render(request, "tools/dash_tools.html", {'data':all_entries})

def success(request):
    return render(request, "tools/loading.html", {})

urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'$',tools.views.dashboard_tools,name="tools"),
    url(r'^success/', tools.views.success, name="success"),
]

return render(request, "tools/loading.html", {}) перенаправляет на правильную страницу, но return redirect('success') и return HttpResponseRedirect(reverse('success')) не в состоянии это сделать.

Перенаправление и HttpResponseRedirect перенаправляют на одну страницу с URL http://127.0.0.1:8000/success/

1 Ответ

0 голосов
/ 17 марта 2020

Ошибка опечатки в urls.py, эту строку

url(r'$',tools.views.dashboard_tools,name="tools"),

следует изменить на

url(r'^$',tools.views.dashboard_tools,name="tools"),

Теперь это работает.

...