何らかの理由で、私のフォームではアメリカの日付形式が受け入れられません。米国の Django 開発者がこれを手伝ってくれるのではないかと思います。設定のタイムゾーンも日付形式に影響すると思われますが、よくわかりません。
設定:
TIME_ZONE = 'Europe/London'
LANGUAGE_CODE = 'en-us'
USE_I18N = True
USE_L10N = True
USE_TZ = True
モデルフォーム:
class CallsForm(ModelForm):
class Meta:
model = Conversation
widgets = {
'contact_date': forms.DateInput(attrs={'placeholder': 'Add the date...', 'id': 'datepicker', 'class': 'placeholder_fix_css'}, format='%m/%d/%Y'),
}
何か案が?ありがとう
アップデート:
私は何が起こっているのかに一歩近づきました:
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
)
LocaleMiddleware が読み込まれるとすぐに、Django がブラウザ セッションから設定を取得するようです。そのため、日付形式がヨーロッパに変更され、場所が反映されます。頭がいい。
日付入力がアメリカの日付形式で受け入れられるようになりました。テンプレート内で取得しますがAug. 31, 2012
、これも正しいです。ただし、フォームでは、取得したレコードを変更しようとすると2012-08-31
??
それは正しくないようです。確かにformat='%m/%d/%Y'
それをオーバーライドするために使用できますが、それはハードコーディングされた悪い習慣ではありませんか? 確かに、フォームは現在のカルチャの日付形式 (アメリカ式) に依存する必要がありますが、なぜそうならないのでしょうか?