我的Django网站上有联系表格。当有人单击submit时,我想使用一个Javascript警报来通知他们他们的消息已经发送,然后将他们重定向回主页。在我的视图中,我已经设置了HttpResponseRedirect部分,但是我正在努力让JS部分工作。这是我的视图.py公司名称:
from datetime import date
from django.http import HttpResponse, HttpResponseRedirect
from django.template import RequestContext
from django.shortcuts import render_to_response
from .form import ContactUsForm
def contact(request):
form = ContactUsForm(request.POST or None)
if form.is_valid():
this_form = form.save(commit=False)
this_form.save()
return HttpResponseRedirect('/')
return render_to_response('contact/form.html', locals(), context_instance=RequestContext(request))
在模板中,您可以使用如下简单的方法(使用一些jQuery):
注意以下几点:
这有点误导,因为它会提醒用户他们的消息已经被发送,甚至 如果它实际上没有被发送(它从不检查服务器以确保)。因此,如果表单中有错误,这肯定会误导用户。
此警报将绑定到页面上的任何表单,因此最好使用其id针对特定表单。
所以这就是快速而肮脏的解决方案。不过,我建议改用Django的messages framework。基本上,您不会使用任何Javascript来提交表单,而是在视图中添加如下内容:
^{pr2}$然后在模板中(最好将其添加到基本模板中,这样用户无论走到哪里,它都会显示出来,因为每次页面加载后邮件都会过期:
相关问题 更多 >
编程相关推荐