我正在尝试在Django中完成以下任务:
第一页:用户填写了一个大型的Job申请表,该数据为 发送到第二页
第二页:用户查看之前填写的数据并进入第三页
我已经完成了填写表单的第一页工作,然后将该数据发送到第二页。
这是我的 views.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
代替applyJob()
,但是它不会发送上下文数据。 Django允许使用 render(),消息框架,URL参数或会话发送上下文。但是由于我有大量数据,所以我不知道该使用哪一个数据,并且将无法正常工作。
有效且安全地完成此任务的最佳方法是什么?
谢谢。
答案 0 :(得分:0)
我建议您改用sessions。无需编写三个单独的视图,您可以编写一个。用户填充数据后,将它们临时保存在带有阶段密钥的会话密钥中。这样,在处理视图时,您可以访问用户的数据和阶段。