Python 在用户向Django提交表单后,如何重定向到感谢您联系我们页面?

Python 在用户向Django提交表单后,如何重定向到感谢您联系我们页面?,python,django,web-development-server,Python,Django,Web Development Server,在向Django提交表单后,我需要将用户重定向到一个新页面,上面写着“感谢您联系我们” 我尝试过使用HttpResponseRedirect,reverse,但是我不知道如何将它实现到我项目的所有必要文件中 from django.shortcuts import render from .forms import ContactForm # Create your views here. def contact(request): template = "contact.html"

在向Django提交表单后,我需要将用户重定向到一个新页面,上面写着“感谢您联系我们”

我尝试过使用HttpResponseRedirect,reverse,但是我不知道如何将它实现到我项目的所有必要文件中

from django.shortcuts import render
from .forms import ContactForm
# Create your views here.
def contact(request):
    template = "contact.html"

    if request.method == "POST":
        form = ContactForm(request.POST)

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

    else:
        form = ContactForm()

    context = {
        "form": form,
    }
    return render(request, template, context)

当我单击submit时,它会将数据发送到Django数据库,这样表单就可以工作了,但用户不知道,因为在他们单击submit之后,它不会重定向到感谢页面

要重定向到感谢页面,您可以使用以下方法

from django.shortcuts import render
from .forms import ContactForm
from django.core.urlresolvers import reverse
from django.http.response import HttpResponseRedirect

def contact(request):
   template = "contact.html"

   if request.method == "POST":
      form = ContactForm(request.POST)

      if form.is_valid():
         form.save()
         return HttpResponseRedirect(reverse("thanks_view_name"))

   else:
      form = ContactForm()

   context = {
      "form": form,
   }
   return render(request, template, context)

请参见示例

只需使用新模板构建另一个与现有视图类似的视图,并将其连接到新url即可。然后将用户重定向到该url。大概是这样的:

在您的URL.py中: 在your views.py中: 在联系人视图中,只需返回一个
重定向('/Thank/')
from django.conf.urls import url
from .views import thank_you
urlpatterns = [
    url(r'^thanks/$', thank_you, name='thank-you'),
]
from django.shortcuts import render

def thank_you(request):
    template = 'thank_you.html'
    context = {}
    return render(request, template, context)