Ich habe ein Modell mit einem Datetimefield:django DateTimeField mit UTC-Offset?
deadline = models.DateTimeField(verbose_name="Valid unitl", null=True, blank=True)
Benutzer sollten zur Eingabe von Datum, Uhrzeit und Zeitzone Info im Bereich zugelassen werden. Dies ist mein gewünschtes Format:
Ich erwarte, dass die Zeit vor der Speicherung in db in UTC konvertiert wird. Also habe ich versucht, ein Modellformular dafür zu verwenden, aber es löst Enter a valid date/time.
Validierungsfehler auf diesem DateTimeField, wenn ich den Wert oben eingeben.
Dies ist in settings.py:
DATE_INPUT_FORMATS = ('%Y-%m-%d %H:%M %Z',)
Was bin ich?
Edit:
Per Видул Петров Vorschlag, versuchte ein Formularfeld zu verwenden:
deadline2 = forms.DateTimeField(input_formats=['%Y-%m-%d %H:%M %Z',],
Haben Sie die gleiche Wirkung: Enter a valid date/time.
Edit 2
Es scheint, dass datetime nicht mit th umgehen kann Der Parameter "% z". Dies wirft ein Valueerror:
datetime.datetime.strptime(value, format)
Also habe ich es in der Konsole getestet:
>>> 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'
Auch versucht 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'
Ich fühle mich sollte dies wirklich funktionieren. Habe ich einen Teil der Dokumentation vermisst, der etwas anderes sagt?
Haben Sie versucht, [input_formats] (https://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.DateTimeField.input_formats)? – Vidul
@ ВидулПетров kein Glück, siehe die Bearbeitung – frnhr
@ Сек: Bitte versuchen 'input_formats = ('% Y-% m-% d% H:% M% z')' – Vidul