0

私のロケールの日付形式は dd/mm/yyyy で、Django は AAAA-MM-DD を要求しています

ユーザーが 04/11/2009 と入力すると、Django は以下を発生させます。

_('Enter a valid date in YYYY-MM-DD format.')) 

Forms.DateFieldではなく、単純なhtml入力フィールドtype = "text"を使用しています

ありがとう :)

4

2 に答える 2

5

を使用していると思いますforms.DateField。もしそうなら、あなたはそのinput_formatsような引数を提供する必要があります:

class MyForm(forms.Form):
    start_date = forms.DateField(input_formats=['%d/%m/%Y'])

input_formatsは、受け入れたいフォーマットのリストを取得するだけです。

詳細については、 http://docs.djangoproject.com/en/dev/ref/forms/fields/#datefieldを参照してください。

于 2009-11-04T22:17:58.567 に答える
1

OPの投稿とコメントに基づくと、日付フィールドにinput_formatsを使用するだけではないようですが、これを実行することをお勧めします。「有効な日付をYYYY-MM-DD形式で入力してください」というメッセージは例外であり、フォーム検証エラーではありません。'YYYY-MM-DD'ではない日付文字列を使用してモデルインスタンスを保存しようとすると、この例外が発生します。

必要なのは、フォームでDateFieldを使用してから、日時オブジェクトであるクリーンアップされたデータを使用してモデルをインスタンス化することです。OPが日時オブジェクトではなく文字列を使用してモデルをインスタンス化していたようです。

Djangoドキュメントのこのセクションでは、DateFieldデータの準備について説明しています: https ://docs.djangoproject.com/en/dev/ref/models/instances/?from = olddocs#what-happens-when-you-save

于 2012-07-11T19:45:32.393 に答える