【发布时间】:2020-03-24 07:42:30
【问题描述】:
我正在尝试在 Django 中完成以下任务:
首页:用户填写了一个大的工作申请表,并且该数据是 发送到第二页
第二页:用户查看他之前填写的数据并进入第三页
- 第三页:用户支付金额(来自第二页)并且一旦支付,那么只有所有这些数据被保存到数据库中。
我已经完成了填写表格的第一页工作,然后将该数据发送到第二页。
这是我的 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....')
为此,我可以在applyJob() 中使用HttpResponseRedirect('/reviewAppliedJob') 而不是render,但它不会发送我的上下文数据。 Django 允许使用 render()、消息框架、url 参数或会话 发送上下文。但是由于我有大量的数据,我不知道该使用哪一个并且可以完美地工作。
高效、安全地完成这项任务的最佳方法是什么?
提前致谢。
【问题讨论】:
标签: django post django-forms django-templates django-views