我想將日期與Django中的當前日期進行比較,最好在模板中進行比較,但在呈現模板之前也可以這樣做。如果日期已過,我想說「過去」,而如果是將來,我想給出日期。如何在Django中比較日期
我希望人們可以做這樣的事情:
{% if listing.date <= now %}
In the past
{% else %}
{{ listing.date|date:"d M Y" }}
{% endif %}
隨着現在是今天的日期,但這不起作用。在Django文檔中我找不到任何關於此的信息。任何人都可以提供一些建議
是的,我同意模板不是日期比較的地方,但在這種情況下,它看起來更優雅。無論如何,我最終在我的django模型中實現了一個方法inPast(),它將日期與當前日期進行比較,如果它在過去時返回True,否則返回false。然後從模板中調用。你的解決方案工作的更好或更好,我只是想知道是否有辦法在模板中做到這一點。 – 2010-09-26 17:18:41
我不這麼認爲:(同樣來自編碼風格和重構POV,能夠在其他模板中進一步重現'is_past_due'作爲屬性更好,否則你必須複製粘貼相同的模板代碼 – bx2 2010-09-26 17:20:53
如果你真的真的想要在模板中混淆並比較日期,那麼必須將當前日期作爲extra_context傳遞,然後使用標準的if標記,但這不是優雅的解決方案。 – bx2 2010-09-26 17:23:10