查询自我在Django的db中创建数据以来的天数
我有一个日期字段,用于注册对象的创建日期 我想看看自从我创建这个对象以来,已经过去了多少天了。我在Django怎么做 我想做点像查询自我在Django的db中创建数据以来的天数,django,python-3.x,date,Django,Python 3.x,Date,我有一个日期字段,用于注册对象的创建日期 我想看看自从我创建这个对象以来,已经过去了多少天了。我在Django怎么做 我想做点像 today_date - object_created_date = x days 这是我的模型: class Comment(models.Model): created_date = models.DateTimeField() comment = models.CharField(max_length=500, default='', blan
today_date - object_created_date = x days
这是我的模型:
class Comment(models.Model):
created_date = models.DateTimeField()
comment = models.CharField(max_length=500, default='', blank=True)
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
post =models.ForeignKey(Post,related_name='comments',on_delete=models.CASCADE)
使用时区,并在注释模型内创建属性
from django.utils import timezone
class Comment(models.Model):
...
# rest of your fields
@property
def since(self):
return (timezone.now() - self.created_date).days
您可以使用comment对象调用since
方法
comment = Comment.objects.first()
comment.since
# output: 6
也可以从模板中调用此方法
{{ comment.since }}
since
的行为类似于模型字段,它将返回自创建注释以来的天数
获取数据库中最后创建的对象,并从今天减去其创建日期
latest_comment = Comment.objects.all().latest('created_date')
time_since_creation_timdelta = django.utils.timezone.now() - latest_comment.created_date
# This is assuming your dates are timezone aware. Otherwise, just just use datetime.now instead of timezone.now.
days_past = time_since_creation.days
seconds_past = time_since_creation.seconds
hours_past = time_since_creation.hours
# etc... (see datetime.timedelta documentation for info on what else you get from a timdelta object)