python - 使用日期的 Django 模板条件语句

标签 python django

我正在尝试检查我的 Django 模板,以查看特定帖子的“添加日期”字段是否在过去三天内。

我正在尝试这样的事情:

{% for deal in deals %}

{% if deal.date_added > (timezone.now ()- timezone.timedelta(days=4)) %}
    <h1>HOT</h1>

{% else %}
      do some other stuff
{% endif %}

{% endfor %}

我收到此错误:无法解析余数:'(timezone.now' 来自 '(timezone.now'

所以内心深处有一些东西告诉我,从模板中运行这种条件语句是绝对不可能的——但我想我会检查一下。谢谢。

最佳答案

class Deal(models.Model):
    ...
    def get_label(self):
        if self.date > datetime.date.today() - datetime.timedelta(days=4):
           return "<h1>HOT</h1>" 
        else:
           return "OLD..."

...然后在你的模板中

{% for deal in deals %}
    {{ deal.get_label | safe }}
{% endfor %}

关于python - 使用日期的 Django 模板条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45579560/

相关文章:

python - python swig 中的 repr 函数

python - Django:ModelMultipleChoiceField 不选择初始选择

对 Google 云端硬盘的 Python 请求

Python 基础 - 从 API 请求数据并写入文件

c++ - 从 Python 解释器调用 SWIG 生成的代码

python - 在可迭代中获取一个元素和以下元素的优雅/高效方法

python - 下载 Django 时出错

sql - 关于SQL中的索引和主键?

django - 从一个页面重定向到另一页面时出现问题

django - 在 Django 中结合 prefetch_related 和 annotate