为什么这个python代码不比较两个日期?

2024-05-03 07:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经写了这段简单的代码,但即使我在django管理部分更新我的文章{% if post.is_updated %} Updated on: {{post.date_updated}}{%endif%},这段代码也不会运行(更新后不会显示在博客上)

型号.py

class Post(models.Model):
    title=models.CharField(max_length=100,help_text='Enter Title')
    content=models.CharField(max_length=500)
    author=models.ForeignKey(User,on_delete=models.CASCADE)
    date_posted=models.DateTimeField(default=timezone.now)
    date_updated=models.DateTimeField(auto_now=True) field

    def __str__(self):
        return self.title

    @property
    def is_updated(self):
        if self.date_updated > self.date_posted:
            return  True
        else:
            return False

article.html

 <div>{{ post.date_posted|date:"F d, Y" }} {% if post.is_updated %} Updated on: {{post.date_updated}}{%endif%}</div>

Tags: 代码selfdatereturniftitleison
1条回答
网友
1楼 · 发布于 2024-05-03 07:54:04

要比较日期,只需导入datetime,然后转换要比较的数据

此外,考虑使用“返回[测试]”模式:

from datetime import datetime
dateformat = "%Y-%m-%d"  #see  datetime documentation for non standart format
...

def is_updated(self):
    return datetime.strptime(self.date_updated,dateformat)  > datetime.strptime(self.date_posted, dateformat)

当然,您可能希望在启动时将字段设置为datetime,而不是使用字符串。在这种情况下,在init中使用strtime(),只需执行

def is_updated(self):
    return self.date_updated > self.date_posted

相关问题 更多 >