python - Django 重定向 - 不是有效的视图函数或模式名称错误
问题描述
我是 Django 的新手,我正在尝试设置一个简单的联系表单,该表单会在成功提交时重定向到感谢页面。提交后我无法将其重定向到感谢页面并收到以下错误:
NoReverseMatch at /contact/
Reverse for 'thanks' not found. 'thanks' is not a valid view function or pattern name.
这是我的urls.py
app_name = 'home'
urlpatterns = [
url(r'^$', views.HomePageView.as_view()),
url(r'^contact/$', views.ContactView, name='contact'),
url(r'^thanks/$', views.ThanksView, name='thanks'),
]
和我的views.py
def 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.py
TEMPLATES = [
{
'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', # <--
],
},
},
]
有人可以指出我在哪里犯了错误吗?
谢谢!
解决方案
这应该工作
return redirect('home:thanks')
推荐阅读
- google-cloud-platform - 谁维护在 https://gcr.io/google_containers 中找到的图像
- java - Minecraft Forge 可穿戴物品
- html - Html 占位符颜色
- ffmpeg - ffmpeg on the fly 从 rtsp 流切换视频
- python - fit_transform(X) 与 fit_transform(X,y)
- image - 上传 jpeg 文件时出现图像编解码器错误
- php - 如何显示具有相同值的最后一行的总数?(拉拉维尔)
- mysql - 如何取回余额
- java - 从 recyclerview 项目单击活动中打开片段
- python - Python:使用 for 循环和条件根据小时确定一天中的时段