为了账号安全,请及时绑定邮箱和手机立即绑定

Django 重定向 - 不是有效的视图函数或模式名称错误

Django 重定向 - 不是有效的视图函数或模式名称错误

莫回无 2021-06-12 09:10:04
我是 Django 的新手,正在尝试设置一个简单的联系表单,该表单在成功提交时重定向到感谢页面。我在提交后无法重定向到感谢页面并收到以下错误:NoReverseMatch at /contact/Reverse for 'thanks' not found. 'thanks' is not a valid view function or pattern name.这是我的 urls.pyapp_name = 'home'urlpatterns = [    url(r'^$', views.HomePageView.as_view()),    url(r'^contact/$', views.ContactView, name='contact'),    url(r'^thanks/$', views.ThanksView, name='thanks'),]和我的 views.pydef ContactView(request):    if request.method == 'GET':        form = ContactForm()    else:        form = ContactForm(request.POST)        if form.is_valid():            subject = form.cleaned_data['subject']            from_email = form.cleaned_data['from_email']            message = form.cleaned_data['message']            try:                send_mail(subject, message, from_email, ['admin@example.com'])            except BadHeaderError:                return HttpResponse('Invalid header found.')            return redirect('thanks')    return render(request, 'contact.html', {'form': form})def ThanksView(request):    return render(request, 'thanks.html', {})我在我的 settings.pyTEMPLATES = [    {        'DIRS': [ os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, '/home', 'templates')],        'APP_DIRS': True,        'OPTIONS': {            'context_processors': [                'django.template.context_processors.debug',                'django.template.context_processors.request',                'django.contrib.auth.context_processors.auth',                'django.contrib.messages.context_processors.messages',                # Third Party Apps                'social_django.context_processors.backends',  # <--                'social_django.context_processors.login_redirect', # <--            ],        },    },]有人可以指出我在哪里犯了错误吗?
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

这应该有效

return redirect('home:thanks')


查看完整回答
反对 回复 2021-06-15
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

如果您为应用程序的名称定义 app_name,您应该像这样为您的视图编写 url

<a href='{% url "name_of_app:name_of_view" %}'> Link </a>



查看完整回答
反对 回复 2021-06-15
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

希望能帮助到你:

return redirect(reverse('appname:urlname'))

或使用 kwargs,在“urlname/”的情况下:

return redirect(reverse('appname:urlname', kwargs={'kwarg':value}))


查看完整回答
反对 回复 2021-06-15
  • 3 回答
  • 0 关注
  • 449 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信