【发布时间】:2014-10-30 20:34:33
【问题描述】:
我一直在玩表单,似乎无法理解为什么cleaned_data 没有给我任何可用的输出(也就是字典似乎完全是空的)。 id 喜欢做的是在页面上有一个带有两个日期选择器的表单,这样用户就可以选择从日期到日期,然后 Django 将查询具有定期热电偶测量值的数据库并创建一个表。
views.py
def temperature_data(request):
date_select_form = CalLabDateSelect(request.POST)
if request.method == 'POST':
if date_select_form.is_valid(): # All validation rules pass
print "this should be some date/time data from date_select_form:", date_select_form.cleaned_data
#return HttpResponseRedirect('/test_page/') # Redirect after POST
raw_data = Callab.objects.all().using('devices').order_by('-time')
return render_to_response("temperature_display.html",
locals(),
context_instance=RequestContext(request))
forms.py
def make_custom_datefield(f):
formfield = f.formfield()
if isinstance(f, models.DateField):
formfield.widget.format = '%m/%d/%Y'
formfield.widget.attrs.update({'class':'datePicker', 'readonly':'true'})
return formfield
class CalLabDateSelect(forms.Form):
formfield_callback = make_custom_datefield
当我访问该页面并选择一个日期然后提交我看到此输出到控制台的表单时:
QueryDict: {u'date': [u'10/04/2014'], u'csrfmiddlewaretoken': [u'C5PPlMU3asdFwyma9azFDs4DN33CMmvK']}
这应该是来自 date_select_form 的一些日期/时间数据:{}
我只注意到字典是空的 {} 但 request.POST 数据显示 10/04/2014???
任何想法为什么会发生这种情况??
非常感谢大家帮助理解这一点!
【问题讨论】: