重定向导致页面未找到错误。我在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;连接是可以的。此外,我认为编写重定向的方式没有错。我该如何解决这个问题?我的代码有什么问题?
答案 0 :(得分:0)
您将错误的参数传递给redirect()
- 您必须传递an actual URL,而不是URL名称。将其更改为:
from django.urls import reverse
return redirect(reverse("app:top"))
目前您正被重定向到/app:top
,这当然是一个不存在的网址。