私はDateTimeField型でモデルを持っている:django DateTimeField(UTCオフセットあり)?
deadline = models.DateTimeField(verbose_name="Valid unitl", null=True, blank=True)
ユーザーがフィールドに入力日付、時刻とタイムゾーン情報に許可する必要があります。これは私の希望するフォーマットです:
2012-12-31 23:30 +0430
私は時間がdbに格納する前に変換されることを期待しています。だからモデルのフォームを使ってみましたが、上記の値を入力するとのValidationエラーが発生します。
これはsettings.pyである:
DATE_INPUT_FORMATS = ('%Y-%m-%d %H:%M %Z',)
私は何をしないのですか?
編集:ВидулПетровの提案を1として
は、フォームフィールドを使用しようとした:編集2
をEnter a valid date/time.
:
deadline2 = forms.DateTimeField(input_formats=['%Y-%m-%d %H:%M %Z',],
は同様の効果を得ました日時はthを処理できないようですe "%z"パラメータ。これは、とValueErrorをスロー:
datetime.datetime.strptime(value, format)
は、だから私は、コンソールにそれをテスト: >>> import datetime
>>> datetime.datetime.strptime('2012-12-30 19:00 +0100', "%Y-%m-%d %H:%M %z")
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 317, in _strptime
(bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M %z'
も試みpytz:私は本当にこれが動作するはず感じる
>>> import pytz
>>> pytz.datetime.datetime.strptime('2012-12-30 19:00 +0100', "%Y-%m-%d %H:%M %z")
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 317, in _strptime
(bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M %z'
。私はそうでないと言われているドキュメントの一部を見逃しましたか?
あなたは[input_formats](https://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.DateTimeField.input_formats)を試してみましたか? – Vidul
@ВидулПетров幸運にも幸運なことに、編集 – frnhr
@Секを見てください: 'input_formats =( '%Y-%m-%d%H:%M%z')' – Vidul