2009-07-24 67 views
34

Đó:Cách định dạng ngày giờ trong mẫu django?

{{ wpis.entry.lastChangeDate|date:"D d M Y" }} 

mang lại cho tôi (tại sao?):

2009-07-24 21:45:38.986156 

và tôi không biết làm thế nào để bỏ qua phần phần ...

Trong mô hình của tôi có:

addedDate = models.DateTimeField(default=datetime.now) 
+0

Dĩ nhiên có, đây là tất cả các dòng

  • {{wpis.entry.UserID.username}} @ [{{wpis.entry.lastChangeDate | date: "D d TÔI"}}]
  • IProblemFactory

    +3

    Lạ, nó phù hợp với tôi. Bạn có chắc lastChangeDate của bạn là Django DateTime? – freiksenet

    +1

    Nó là dành cho addDate không cho lastChangeDate, đó là lý do tại sao tôi tự hỏi. – freiksenet

    Trả lời

    6

    Bạn có thể sử dụng này:

    addedDate = datetime.now().replace(microsecond=0)

    3

    Tôi nghi ngờ wpis.entry.lastChangeDate đã được chuyển đổi thành chuỗi trong chế độ xem, trước khi đến mẫu.

    Để xác minh giả thuyết này, bạn chỉ có thể kiểm tra chế độ xem nếu nó có một số thuộc tính/phương thức chỉ có chuỗi - ví dụ: wpis.entry.lastChangeDate.upper và sau đó xem mẫu có bị treo hay không.

    Bạn cũng có thể tạo custom filter của riêng mình và sử dụng nó cho mục đích gỡ lỗi, cho phép nó kiểm tra đối tượng và viết kết quả kiểm tra trên trang hoặc đơn giản trên bảng điều khiển. Nó sẽ có thể kiểm tra đối tượng, và kiểm tra xem nó thực sự là một DateTimeField.

    Trên thông báo không liên quan, tại sao bạn không sử dụng models.DateTimeField(auto_now_add=True) để đặt ngày giờ sáng tạo?

    94

    Đây là chính xác những gì bạn muốn. Hãy thử điều này:

    {{ wpis.entry.lastChangeDate|date:'Y-m-d H:i' }} 
    
    +22

    Chi tiết về tất cả các tùy chọn định dạng sẵn có là tài liệu Django: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date –

    +0

    Lưu ý: không có dấu cách sau ':' và sử dụng dấu trích dẫn đơn giản ... – FaithReaper

    Các vấn đề liên quan