gpt4 book ai didi

python - Django 重定向无法解析 URL

转载 作者:行者123 更新时间:2023-12-01 09:10:39 25 4
gpt4 key购买 nike

我有一个非常简单的带有表单的 Django 应用程序。表单经过验证后,它应该重定向到应用程序的起始页。我收到以下错误:

django.urls.exceptions.NoReverseMatch: Reverse for 'overview' not found.
'overview' is not a valid view function or pattern name.

urls.py中的相关路径是:

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

该 View 与重定向 View 位于同一views.py中:

def overview(request):
...
return render(request, 'feedback/overview.html', context)

带有重定向调用的 View 如下所示:

def make_submission(request):
if request.method == 'POST':
form = FeedbackForm(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.approved = False
post.save()
return redirect('overview')
else:
form = FeedbackForm()
return render(request, 'feedback/make_submission.html', {'form': form})

表单数据保存在数据库中,但重定向失败。我做错了什么?

编辑:

这是主要的 urls.py。这与我在这里使用 url() 而不是 path() 有什么关系吗?我目前正在将整个 shebang 迁移到 Django 2.1。

from django.conf.urls import include,url
from django.contrib import admin


urlpatterns = [
url(r'^$', include('main.urls')),
url(r'^main/', include('main.urls')),
url(r'^feedback/', include('feedback.urls')),
url(r'^admin/', admin.site.urls),
]

最佳答案

您的异常来自 here :

    if patterns:
if args:
arg_msg = "arguments '%s'" % (args,)
elif kwargs:
arg_msg = "keyword arguments '%s'" % (kwargs,)
else:
arg_msg = "no arguments"
msg = (
"Reverse for '%s' with %s not found. %d pattern(s) tried: %s" %
(lookup_view_s, arg_msg, len(patterns), patterns)
)
else:
msg = (
"Reverse for '%(view)s' not found. '%(view)s' is not "
"a valid view function or pattern name." % {'view': lookup_view_s}
)

这意味着 Django 甚至无法找到您的 url 来尝试反向访问它。因此,您可能错误地将其包含在核心应用程序的 urls.py 中,以尝试引用它。也许fxgx的评论是正确的。

关于python - Django 重定向无法解析 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51679962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com