フォームから日時オブジェクトを保存する際に問題が発生しました。フォームウィジェットは、次のようなテキスト文字列を表示します:2012-09-20 04:41 PM
次のように、フォームのcleanメソッドをオーバーライドしようとしています。
class LegForm(ModelForm):
formfield_callback = make_custom_field
class Meta:
model = Leg
exclude = ('riders', 'drivers', 'open_to_prefs','carpool')
widgets = { 'days': forms.CheckboxSelectMultiple }
def clean_drive_date_time(self):
twelve_hour = self.cleaned_data['drive_date_time']
print "drive time: " + str(twelve_hour)
data = datetime.strptime(twelve_hour, "%Y-%m-%d %I:%M %p")
print "24 hour drive time: " + str(data)
return data
strptimeステートメントはコマンドラインから機能し、有効な日時オブジェクトを提供しますが、上記のようにプロジェクトで試してみると、フォームに「有効な日時を入力してください」というエラーが表示されます。
24時間形式を使用すれば、cleanメソッドをオーバーライドしなくても問題なく日時を保存できますが、エンドユーザーにとってはさらに困難です。どんな助けでも大歓迎です。ありがとう!