如何在Django中显示经过的时间

如何在Django中显示经过的时间,django,Django,所以,我试图在页面上显示最近访问的历史记录所经过的时间。在我的模型上,我有以下属性 型号.py class History(models.Model): ... created_on = models.DateTimeField(auto_now_add=True) ... 我已经检查过了,但它无法表示从创建时间到现在所经过的时间。Django不支持该功能吗?那么我应该自己实现它吗?据我所知,Django没有这样的功能。最好实现自己的。使用js例如,使用setInter

所以,我试图在页面上显示最近访问的历史记录所经过的时间。在我的模型上,我有以下属性

型号.py

class History(models.Model):
    ...
    created_on = models.DateTimeField(auto_now_add=True)
    ...

我已经检查过了,但它无法表示从创建时间到现在所经过的时间。Django不支持该功能吗?那么我应该自己实现它吗?

据我所知,Django没有这样的功能。最好实现自己的。使用
js
例如,使用
setInterval()
Ajax
更新特定的时间字段

在此之前,您需要在离开页面时添加一个要记录的字段

created_on = models.DateTimeField(auto_now_add=True)
left_at = models.DateTimeField(auto_now_add=True)
Js
在HTML页面中使用此脚本非常重要,因为我们将使用Django变量

var id_obj = '{{ obj.id }}'; // $('tag').val();
totalSeconds = 5;
setInterval(function(){
     recordElapsedTime();
},totalSeconds * 1000);

var recordElapsedTime = function(){
    $.ajax({
         url:"/url/to/view/",
         type:"POST",
         data:{
             id_obj:id_obj,
             csrfmiddlewaretoken:'{{ csrf_token }}'
         },
    });
}
查看

 import datetime

 def elapsedTime(request):
     if request.method == 'POST' and request.is_ajax():
         id_obj = request.POST.get('id_obj')
         obj = get_object_or_404(ObjectModel,id=id_obj)
         obj.left_at = datetime.datetime.now()
         obj.save()
现在很容易确定经过的时间,例如作为模型中的属性方法

@property
def elapsed_time(self)
    return (self.left_at - self.created_on).seconds

您能指定要显示经过的时间还是时间差吗?