Tôi cảm thấy như tôi đang thiếu điều gì đó hiển nhiên ở đây. Tôi có một hình thức Django với một TimeField trên đó. Tôi muốn có thể cho phép thời gian như "10:30 sáng", nhưng tôi không thể chấp nhận định dạng nhập đó hoặc sử dụng định dạng "% P" (có số note attached nói rằng đó là "Tiện ích mở rộng độc quyền", nhưng không có t nói nó đến từ đâu). Dưới đây là ý chính của mã biểu mẫu của tôi:Các hình thức Django: Thời gian xác nhận hợp lệ
calendar_widget = forms.widgets.DateInput(attrs={'class': 'date-pick'}, format='%m/%d/%Y')
time_widget = forms.widgets.TimeInput(attrs={'class': 'time-pick'})
valid_time_formats = ['%P', '%H:%M%A', '%H:%M %A', '%H:%M%a', '%H:%M %a']
class EventForm(forms.ModelForm):
start_date = forms.DateField(widget=calendar_widget)
start_time = forms.TimeField(required=False, widget=time_widget, help_text='ex: 10:30AM', input_formats=valid_time_formats)
end_date = forms.DateField(required=False, widget=calendar_widget)
end_time = forms.TimeField(required=False, widget=time_widget, help_text='ex: 10:30AM', input_formats=valid_time_formats)
description = forms.CharField(widget=forms.Textarea)
Bất kỳ lúc nào tôi gửi "10:30 AM", tôi đều gặp phải lỗi xác thực. Mô hình cơ bản có hai trường, event_start và event_end, không có trường thời gian, vì vậy tôi không nghĩ rằng vấn đề nằm trong đó. Điều gì ngu ngốc tôi đang thiếu?
Bạn sẽ không thể sử dụng '% P' như vậy, tôi khá chắc chắn chỉ dành cho đầu ra và không thể được sử dụng để phân tích cú pháp (tức là mặt nạ nhập). 'ValidationError' bạn nhận được chính xác là gì? –
Chỉ cần "Nhập thời gian hợp lệ". – Tom