我想将日期与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