我一直在玩弄一些形式,似乎不能理解为什么cleaned_data没有给我任何可用的输出(又名字典似乎是完全空的)。 id喜欢做的是在页面上有一个带有两个日期选择器的表单,这样用户就可以选择一个from和date,然后Django将查询一个定期进行热电偶测量并创建一个表的数据库。django forms,cleaned_data是空的
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一些日期/时间数据:{}
所有的i注意的是,该词典是空的{}但是request.POST数据显示2014年10月4日???
任何想法,为什么发生这种情况?
非常感谢大家的理解!
谢谢丹尼尔。不知道我在那里期待什么!大声笑。我花了一些时间练习一些我发现的教程(非常感谢Mike Hibbert为他的Django YouTube系列!!),现在我觉得表单工作流程更加舒适。虽然我仍然不确定如何去创建和验证日期/时间选择器,但我会继续练习基本知识。我只希望我能及时完全理解这个概念。顺便说一句,我会重写你,但我需要15个StackExchange东西之前,我被允许。但再次感谢! – Logic1 2014-11-05 02:02:11