DateTime fields sẽ luôn lưu trữ giây; Tuy nhiên, bạn có thể dễ dàng nói với các mẫu để chỉ hiển thị giờ và phút, với bộ lọc time
:
{{ value|time:"H:M" }}
nơi "giá trị" là biến có chứa các lĩnh vực datetime.
Tất nhiên, bạn cũng có thể sử dụng các thủ thuật khác, như cắt giây ra khỏi trường khi đang lưu; nó sẽ đòi hỏi chỉ là một thay đổi nhỏ cho mã trong giao diện xử lý hình thức, để làm một cái gì đó như thế này:
if form.is_valid():
instance = form.save(commit=False)
instance.nosecs = instance.nosecs.strptime(instance.nosecs.strftime("%H:%M"), "%H:%M")
instance.save()
(lưu ý: đây là một mã xấu xí và chưa được kiểm tra, chỉ để cung cấp cho các ý tưởng)
Cuối cùng, bạn nên lưu ý rằng quản trị viên sẽ vẫn hiển thị giây trong trường.
Tuy nhiên, nó không phải là một mối quan tâm lớn, bởi vì admin chỉ nên được sử dụng bởi một loại người dùng có thể được hướng dẫn không sử dụng phần đó của trường.
Trong trường hợp bạn muốn vá cũng là quản trị viên, bạn vẫn có thể chỉ định tiện ích của riêng mình cho biểu mẫu và do đó có quản trị viên sử dụng nó. Tất nhiên, điều này có nghĩa là một nỗ lực bổ sung đáng kể.
Nguồn
2009-08-06 20:00:20
{{value | thời gian: "H: i"}} làm việc cho tôi. – GvS
Trong cài đặt biểu mẫu của chế độ xem dựa trên lớp học của Django, TIME_INPUT_FORMATS trong cài đặt đã hoạt động đối với tôi. https://docs.djangoproject.com/en/dev/ref/settings/#time-input-formats – maciek
@maciek: điều đó không hiệu quả đối với tôi. Đặt 'TIME_INPUT_FORMATS = [ '% H:% M', ]' trong 'settings.py' là không đủ. Tôi phải chỉ định widget. – SaeX