django - 即使使用 recaptcha 验证失败,也保留 django 表单数据
问题描述
我正在为我的网站编写一个联系表单,并且我正在使用 reCaptcha 来验证用户之前的表单提交。我不知道如何构建我的逻辑,以便如果 reCaptcha 失败,我仍然可以将用户重定向到同一页面,而不会删除他们已经输入的字段。
在我的 views.py 中,我有以下内容。
class hdnytorv(View):
def __init__(self, *args, **kwargs):
self.ContextObject = ContextBuilder() #building a dict with context keywords
if 'contactFrom' in kwargs: #Then this comes from a post that has failed and data needs to be saved
self.form = kwargs['contactForm']
else:
self.form = contactForm()
self.context = {'contactForm' : self.form}
#When the page is generated first the below will be shown
def get(self, request, *args, **kwargs):
..
return render(request, template_name='welcome.html', context = self.context)
def post(self, request, *args, **kwargs):
form = contactForm(request.POST)
newsletterForm = newsLetterForm(request.POST)
if form.is_valid():
#check recaptcha
validate = Validate(request = request)
validate.result['success'] =False
if validate.result['success'] is False:
messages.warning(request, 'Validation failed. Try again.', extra_tags='contactSubmitStatus')
return redirect('/welcomePage#contactForm')
问题是每次我重定向到 `'/welcomPage#contactForm' 时,都会创建一个新的类实例,并且会调用 get 并重新呈现表单,因此所有字段都是空的,并且用户的数据输入会丢失。我应该怎么做才能获得满足以下 2 个标准的解决方案:
使用表单中的数据重定向回同一页面
重定向到页面的正确 id 标记,在我的示例中为 #contactForm
解决方案
推荐阅读
- xml - 在 xsl 中使用带有副本的 concat
- c# - 使用 Moq 模拟复杂的泛型方法
- javascript - 如何在 React 中获取和显示 JSON?
- xamarin - 如何在 xamarin ios 中实现每 x 秒运行一次的服务
- sql - 使用 UTC 日期时间列创建 sql 表
- javascript - 如何解决这个问题 Click bug with an audio ProgressBar in javascript?
- arrays - 如何快速确定并从带有数组的结构中提取正确的数据
- ruby - 递归列出文件或目录时避免“检测到堆栈粉碎”
- android-studio - 从导入建议中排除颤振导出
- .htaccess - 如何将网站中的 www 替换为 my、m 等其他词?