重定向导致页面未找到错误

时间:2018-04-28 03:11:40

标签: python django

重定向导致页面未找到错误。我在html中写道

<form method="POST" action="/app/save/">
    <p>name:<input id="name" type="text" name="NAME"></p>
    <p>email:<input id="email" type="text" name="email"></p>
    <p><input type="submit" value="SEND"></p>
</form>
在views.py中

def top(request):
    return render(request, 'top.html')

def save(request):
    save_form = SaveForm(request.POST or None)

    if request.method == "POST" and save_form.is_valid():
        save= save_form.save(commit=False)
        name = request.POST.get("name", "")
        email = request.POST.get("email", "")

        save.name = name
        save.email = email

        save.save()
    return redirect("app:top")
在urls.py中

from django.urls import include, path
from . import views

urlpatterns = [
    path('top', views.top,name='top'),
    path('save', views.save,name='save'),
]

我真的无法理解为什么会发生这样的错误。我在urls.py中写了保存网址,所以我认为网址和视图&#39;连接是可以的。此外,我认为编写重定向的方式没有错。我该如何解决这个问题?我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

您将错误的参数传递给redirect() - 您必须传递an actual URL,而不是URL名称。将其更改为:

from django.urls import reverse

return redirect(reverse("app:top"))

目前您正被重定向到/app:top,这当然是一个不存在的网址。