表单提交后 Django 重定向不起作用

Rya*_*ene 3 forms django redirect

Django 新手

所以这个可能有一个非常简单的答案,但我一生都找不到具体的解决方案。我只是想在使用 FileField 提交表单后重定向到新的 URL。

我可以单独导航到该 URL,效果很好。

文件上传正确,因此我知道它已正确验证。

但重定向返回以下错误:

Reverse for 'success' not found. 'success' is not a valid view function or pattern name.
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同的命名约定,但没有一个有效。在我看来,我已经设置了 URL 并正确传递了它。

非常感谢对此的一些帮助。最简单的问题却是最令人沮丧的!

以下是观点。

from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from .forms import InvestmentReportForm

def upload(request):
    if request.method == 'POST':
        form = InvestmentReportForm(request.POST, request.FILES)

        if form.is_valid():
            form.save()

            return redirect('success')
    else:
        form = InvestmentReportForm()
    return render(request, 'app/upload.html', {'form': form})

def success(request):
    return HttpResponse("File successfully uploaded")
Run Code Online (Sandbox Code Playgroud)

还有我的 urls.py:

app_name = 'app'
urlpatterns = [
                path('', views.index, name='index'),
                path('upload/', views.upload, name='upload'),
                path('success/', views.success, name='success'),
                path('performance/', views.performance, name='performance'),
                ]
Run Code Online (Sandbox Code Playgroud)

Rya*_*ene 7

正如我所怀疑的,答案很简单。对于其他人,如果您对一组 url 模式使用命名空间,则在调用这些 url 时必须引用该命名空间。对于这个例子:

return redirect('app:success')