django - Django 将上下文发送到多个视图
问题描述
我正在尝试在 Django 中完成以下任务:
第一页:用户填写一个大的工作申请表,数据被发送到第二页
第二页:用户查看他之前填写的数据并进入第三页
- 第三页:用户支付金额(来自第二页)并且一旦支付,那么只有所有这些数据被保存到数据库中。
我已经完成了填写表格的第一页工作,然后将该数据发送到第二页。
这是我的意见.py
def applyJob(request,id=None):
job = get_object_or_404(AddJob, id=id)
if request.method == 'POST':
context = {
'jobName': job.jobName,
'jobID' : job.pk,
'cfName' : request.POST.get('candidateFirstName'),
'cmName' : request.POST.get('candidateMiddleName'),
'clName' : request.POST.get('candidateLastName'),
......
return render(request,'reviewAppliedJob.html',context)
else:
context ={
"jobName": job.jobName,
"id": id,
}
return render(request,'applyJob.html',context)
由于我使用 发送上下文数据return render(request,'reviewAppliedJob.html',context)
,因此 URL 不会更改,因此不会进入我的reviewAppliedJob 视图,因此我无法编写代码进入第三页。
def reviewAppliedJob(request):
return HttpResponse('done....')
为此,我可以使用HttpResponseRedirect('/reviewAppliedJob')
而不是render
in,applyJob()
但它不会发送我的上下文数据。Django 允许使用render()、消息框架、url 参数或 session发送上下文。但是由于我有大量数据,我不知道该使用哪一个并且可以完美地工作。
高效、安全地完成这项任务的最佳方法是什么?
提前致谢。
解决方案
我建议您改用会话。您可以编写一个,而不是编写三个单独的视图。用户填写数据后,将它们临时保存在带有阶段密钥的会话密钥中。这样,在处理视图时,您可以访问用户的数据和阶段。
推荐阅读
- python-3.x - 使用 BeautifulSoup 从篮球参考中提取表格的问题
- python - 如何枚举不带括号的列表?
- node.js - 登录nodejs时如何验证电子邮件和密码
- sql - 如何在 DB2 中使用 DATE 子句内连接两个表
- java - 如何将哈希映射放入 JSONObject?
- php - 如何在作业队列中传递 curl 资源?
- swift - 如何配置 UICollectionView 的 maxCellSpacing?
- swift - 使用 CAShapeLayer swift 创建带有阴影的自定义折线图
- mule - Mule Flow - 将 multipart/form-data 按原样转发到以下 HTTP 请求
- fish - Fish shell 在参数中运行带括号的命令