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

标签 python django

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

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/

相关文章:

Python - Beautiful Soup - 如何用不间断空格替换字符串?

python - djangorest框架多个url参数

python - django.db.utils.IntegrityError : null value in column "address" violates not-null constraint

django - Tastypie-获取正在编辑的对象的列表(PUT/PATCH)

python - Django TastyPie ToManyField 关系提示 "has no data and doesn' t 允许空值”在新项目的 POST 上

python - 将 numpy 3 维矩阵切片为 2 维矩阵

python - 如何删除列表中重复数字的所有实例?

python - 使用键创建字典,因为文件名值是内容

python - 如何将 pandas 系列的 json 字符串扁平化为数据框

python - Django:ValueError:字段 account.UserProfile.user 引用的模型查找失败:auth.User