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),)

このビューはフォームを表示し、エラー時に再表示するため、次の 2 つのケースがあります。

  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

.valueでは、 ofを削除してみましょうend_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 に答える