gpt4 book ai didi

python - 我可以将 DateTimeFields 与标签 "if"进行比较吗?

转载 作者:太空宇宙 更新时间:2023-11-04 04:31:11 25 4
gpt4 key购买 nike

我遇到了这个问题,但我不明白为什么它不起作用。我有这个模型:

class Tweet(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, on_delete=models.CASCADE)
content = models.TextField(validators=[validate_content])
updated = models.DateTimeField(auto_now=True)
timestamp = models.DateTimeField(auto_now_add=True)

def __str__(self):
return str(self.pk)

我在调用模型对象的地方有这个“for”:

 ...
{% for t in object_list %}
<tr>
<td>{{ t.user }}</td>
<td>{{ t.content }}</td>

{% if t.updated == t.timestamp %}
<td>Created: {{ t.updated| timesince }} </td>
{% else %}
<td>Updated: {{ t.updated| timesince }} </td>
{% endif %}
...

如果字段具有相同的内容,我想显示第一条消息,如果对象刚刚创建,这应该是真的,但它显示第二条消息。

我已经在管理面板中检查了字段的内容,两者的内容相同,所以我不知道会是什么。

最佳答案

auto_now=Trueauto_now_add=True 各自使用 datetime.now() 获取时间戳,它们总是相差一小部分一秒钟,因为它们是单独执行的,所以您的 updatedtimestamp 字段的值永远不会相等。

您可以使用 timesince 获取两个时间戳之间的时间差,如果它是 0 分钟,它实际上可以被认为是新创建的:

{% if t.timestamp | timesince:t.updated == "0 minutes" %}

关于python - 我可以将 DateTimeFields 与标签 "if"进行比较吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52619472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com