Django将数据从表单传递给模板

时间:2014-12-10 20:55:15

标签: django forms templates views

我想将表格中的一些信息(来自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使用我的viewform

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建议的那样。我会离开这个,也许有人会陷入类似的问题

0 个答案:

没有答案