出于某种原因,我使用自定义 HTML 代码来显示表单。我的表单输入获取初始值(日期),并在提交后显示相同的表单。
但是提交后,输入没有以前选择的值(只是空的)。
我{{ Form.Fileld.value|date:"Y-m-d" }}
在模板中使用来获取初始值和提交值。
似乎初始值和提交值的格式不同:初始值的“日期时间”和提交后的“字符串”。
这是我的简单测试:
形式
class ShowStartEndDateForm(forms.Form):
start_date = forms.DateField(initial=date.today().replace(day=1),
label="Start",
widget=forms.DateInput(format='%Y-%m-%d'),
input_formats=['%Y-%m-%d'])
...
看法
if request.method == 'POST':
form_date = ShowStartEndDateForm(request.POST)
if form_date.is_valid():
form_was_submitted = True
cd = form_date.cleaned_data
operator = cd['operators']
days=[]
for day in range(0,(cd['end_date']-cd['start_date']).days+1):
days.append(cd['start_date']+relativedelta(days=+day))
else:
form_date = ShowStartEndDateForm()
return render_to_response('epay.html', locals(),
context_instance=RequestContext(request))
模板
<!- HTML FORM here
|classname is my custom template filter.
-->
Date1: {{ form_date.start_date.value|date:"Y-m-d" }} \
({{ form_date.start_date.value|classname }})
Date2: {{ form_date.start_date.value }}
第一次在浏览器中调用:
Date1: 2013-10-01 (date)
Date2: 1 October 2013
表单提交后:
Date1: (unicode)
Date2: 2013-10-01
我究竟做错了什么?访问表单字段初始值和提交值的正确方法是什么?
谢谢你。