どのようにジャンゴにdd / mm / yyyyのためにデフォルトの日付書式AAAA-MM-DDを変更するには?
-
16-09-2019 - |
質問
私のロケールDATEFORMATはDD / MM / YYYYで、DjangoはAAAA-MM-DD
をrequeringされます際にユーザの入力2009年4月11日Djangoが上昇します:
_('Enter a valid date in YYYY-MM-DD format.'))
イム
forms.DateFieldない、単純なHTML入力フィールドタイプ= "テキスト" を使用してありがとう:)
解決
私はあなたが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 /フォーム/フィールド/#の日付フィールドでます。
他のヒント
OPの記事やコメントに基づいて、それが見えます。メッセージ「YYYY-MM-DD形式で有効な日付を入力してください」を例外との のNOTフォームの検証エラーです。あなたは「YYYY-MM-DD」ではありません日付文字列を使用してモデルインスタンスを保存しようとすると、この例外を取得します。
必要なものは、DateTimeオブジェクトである、フォームでのDateFieldを使用して、きれいにデータを使用してモデルをインスタンス化することです。 OPはDateTimeオブジェクトではなく、文字列を使用してモデルをインスタンス化していたように見えます。
Djangoのドキュメントのこのセクションでは、DateFieldのデータを準備について説明します。 ます。https:// docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-saveする