我想将表格中的一些信息(来自2个DateFields的数据)传递给我的模板。现在我的form
看起来像这样:
class ReportForm(forms.Form):
start = forms.DateField(widget=SelectDateWidget(), initial=date.today())
end = forms.DateField(widget=SelectDateWidget(),initial=date.today())
type = forms.ChoiceField(required=True, choices=ACTIVITY_CHOICES, initial=RUNNING)
我想通过start
&我end
的{{1}}字段如下所示:
template
因此,将所有内容放在一起后,它应显示<body>
{{ request.session.temp_data }}
<div id="header">
<div id="navbar">
<h1>Raport za okres {{ temp_data.start }}</h1>
</div>
</div>
</body>
之类的内容,但仅显示Raport za okres 2.12.2014
。我正在浏览文档,其他StackOverflow主题,但我找不到(或理解)它应该如何完成。如果需要,我的Raport za okres
使用我的view
和form
:
template
非常感谢任何帮助。
P.S。我需要同时使用def ReportRequest(request):
if not request.user.is_authenticated():
return HttpResponseRedirect('/login/')
if request.method == 'POST':
form = ReportForm(request.POST)
if form.is_valid():
usrname = request.user
q = Training.objects.filter(user=usrname, date__range=[form.cleaned_data['start'], form.cleaned_data['end']], type=form.cleaned_data['type'])
quantity = q.count()
if quantity == 0:
return HttpResponseRedirect('/notrainings/')
avg_length = q.aggregate(Avg('length'))
avg_distance = q.aggregate(Avg('distance'))
avg_calories = q.aggregate(Avg('caloriesBurnt'))
return HttpResponseRedirect('/report')
else:
return render_to_response('reportform.html', {'form':form}, context_instance=RequestContext(request))
else:
form = ReportForm()
return render_to_response('reportform.html',{'form':form}, context_instance = RequestContext(request))
def form_valid(self, form):
self.request.session['temp_data'] = form.cleaned_data
return super(TemplateView.as_view(template_name="reportform.html"), self).form_valid(form)
和&amp;我的模板中的start
字段
通过abhishekgarg解决:
而不是使用end
我使用了返回
HttpResponseRedirect
像abhishekgarg建议的那样。我会离开这个,也许有人会陷入类似的问题