【发布时间】:2021-10-28 12:06:41
【问题描述】:
我正在构建一个 BlogApp 并且我正在实现 expiring post 的功能,因此帖子将隐藏在 2 days 中,因此我在帖子中向用户显示 remaining time。
剩余时间显示完美,但它也显示毫秒(我试图隐藏)
输出是这样的:-
2 天,23:43:33.271449
views.py
from django.utils import timezone
from datetime import timedelta
def blogpost_detail(request,blogpost_id):
blog = get_objects_or_404(BlogPost,pk=blogpost_id)
remaining_time = blog.blog_date_added - timezone.now() + timedelta(days=2)
context = {'remaining_time':remaining_time,'blog':blog}
return render(request, 'blogpost_detail.html', context}
我试图显示为输出的内容:-
我想表现得像:-
还剩 2 天 23 小时
我尝试了什么:-
- 我试过Python/Django timestamp including milliseconds
dividing 1000的回复,但是当我将timezone by 1000像timezone.now()/1000分开时,它会一直显示
/不支持的操作数类型:“datetime.datetime”和“int”
-
然后我尝试使用
time:"h:i a"像{{ blog.blog_date_added|time:"h:i a" }}一样将milliseconds从template隐藏起来 但它没有显示任何输出。 -
当我尝试添加
naturaltime之类的{{ blog.blog_date_added|naturaltime }}时,它会显示相同的输出。 -
当我尝试像
{{ blog.blog_date_added|timesince }}一样添加timesince时,它会显示:-
'datetime.timedelta' 对象没有属性'year'
任何帮助将不胜感激。提前谢谢你
【问题讨论】:
-
这看起来像是
|naturaltimetemplate filter -
@WillemVanOnsem,当我添加
{{ blog.blog_date_added|naturaltime }}时,它甚至不会改变输出。它显示相同的值 -
此外,您还应该指定博客不再处于活动状态时的时间戳,因此在
blog_date_added之后两天 -
如果一直是两天,我会做一个属性,因为那时它是根据
date_added字段计算的,因此不可能不一致。 -
@WillemVanOnsem,是的,总是两天,我绝不希望用户编辑
expire日期
标签: python django datetime django-views