1

看法

def editor(request):
    form = SessionForm(initial={
        'end_time': datetime.datetime.now(),
    })

    if request.method == 'POST':
        form = SessionForm(request.POST)
        if form.is_valid():
            form.save()

    return render_to_response('planner/editor.html',
        {'form': form}, context_instance=RequestContext(request),)

此视图显示表单并在出错时重新显示,因此有两种情况:

  1. 初始化
  2. 错误

在模板中,我正在尝试end_time使用日期过滤器显示该字段

测试 1

  <div>End value: {{ form.end_time.value }}</div>
  <div>End value filtered: {{ form.end_time.value|date:"Y-m-d" }}</div>

案例1(初始化)

最终值:2012-04-23 12:30:00
过滤的最终值:2012-04-23

案例2(错误)

最终值:2012-04-23 12:30:00
过滤的最终值:

测试 2

现在让我们尝试删除.valueofend_time

  <div>End value: {{ form.end_time.value }}</div>
  <div>End value filtered: {{ form.end_time|date:"Y-m-d" }}</div>

案例1(初始化)

最终值:2012-04-23 12:30:00
过滤的最终值:

案例2(错误)

最终值:2012-04-23 12:30:00
过滤的最终值:2012-04-23

正如你所看到的,它正在做相反的事情。
这怎么解释?

4

1 回答 1

3

使用

{{ form.instance.end_time|date:"Y-m-d" }}

代替

{{ form.end_time|date:"Y-m-d" }}

似乎在这两种情况下都有效

于 2012-04-26T13:21:11.117 回答