Tôi muốn so sánh ngày tháng với ngày hiện tại ở Django, tốt nhất là trong mẫu, nhưng cũng có thể thực hiện trước khi hiển thị mẫu. Nếu ngày đã trôi qua, tôi muốn nói "Trong quá khứ" trong khi đó là trong tương lai, tôi muốn đưa ra ngày tháng.Cách so sánh ngày tháng trong Django
Tôi đã hy vọng người ta có thể làm điều gì đó như thế này:
{% if listing.date <= now %}
In the past
{% else %}
{{ listing.date|date:"d M Y" }}
{% endif %}
Với nay là ngày hôm nay, nhưng điều này không hoạt động. Tôi không thể tìm thấy bất cứ điều gì về điều này trong các tài liệu Django. Bất cứ ai có thể đưa ra một số lời khuyên?
Có, tôi đồng ý rằng các mẫu không phải là nơi để so sánh ngày, nhưng trong trường hợp này, nó có vẻ thanh lịch hơn rất nhiều. Trong mọi trường hợp, tôi cuối cùng đã thực hiện một phương thức trong mô hình django của tôi, inPast(), so sánh ngày với ngày hiện tại và trả về True nếu nó nằm trong quá khứ và sai khác. Điều này sau đó được gọi từ mẫu. Giải pháp của bạn hoạt động tốt hoặc tốt hơn, tôi chỉ tò mò muốn biết liệu có cách nào để thực hiện nó trong mẫu không. –
Tôi không nghĩ như vậy :(Cũng từ kiểu mã hóa, và tái cấu trúc POV, tốt hơn nhiều là có thể tái tạo 'is_past_due' làm thuộc tính hơn nữa trong ví dụ: các mẫu khác nếu không bạn phải sao chép cùng một mã mẫu – bx2
Nếu bạn thực sự, thực sự, thực sự thích xáo trộn xung quanh và so sánh ngày trong mẫu, bạn phải chuyển ngày hiện tại thành extra_context và sau đó sử dụng thẻ 'if' chuẩn, nhưng đây không phải là giải pháp thanh lịch .. – bx2