Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-自模型创建以来的时间_Python_Django_Datetime_Timedelta - Fatal编程技术网

Python Django-自模型创建以来的时间

Python Django-自模型创建以来的时间,python,django,datetime,timedelta,Python,Django,Datetime,Timedelta,如何计算模型创建后的时间?模型具有以下字段: created_at = models.DateTimeField(auto_now_add=True) 这就是我所尝试的: from datetime import datetime, timedelta @property def time_since_created(self): return (datetime.now()-self.created_at).total_seconds() 我不明白的是,它在没有给我任何错误消息的

如何计算模型创建后的时间?模型具有以下字段:

created_at = models.DateTimeField(auto_now_add=True)
这就是我所尝试的:

from datetime import datetime, timedelta

@property
def time_since_created(self):
    return (datetime.now()-self.created_at).total_seconds()
我不明白的是,它在没有给我任何错误消息的情况下崩溃了。如果我将其包装在一个try/except块中,如下所示:

@property
    def time_since_created(self):
        try:
            return (datetime.now()-self.created_at).total_seconds()
        except Exception as e:
            try:
                print("Error:" + e)
            except:
                print("Error: An exception occured when trying to print exception")
我将得到的错误是错误:尝试打印异常时发生异常。如果我不包括最后一个try/catch块,我将根本得不到任何输出

有人有什么想法吗?

编辑:重新发布django解决方案

在检查之前的stackoverflow post和其他一些post之后。他们建议不要使用auto_now_add,而是添加默认参数作为格式

created_date = models.DateTimeField(default=datetime.now())
我认为这可能是格式问题,这应该可以解决这个问题。 很抱歉我之前的回答

编辑: 检查django源代码后,auto_now_add参数似乎适用

value = datetime.datetime.now().time()
对实例进行建模

在我的测试中,如果我用datetime.now.time减去这个值,它就会弹出


但我不确定您的django版本,可能源代码已被修改。

我尝试自己执行相同的操作,但出现错误:

can't subtract offset-naive and offset-aware datetimes
这是因为datetime.now是天真的,并且是在意识到的时候自己创建的。因此,请尝试使用timezone.now:


你能详细说明什么不起作用吗?错误消息?错误的结果?是的,我现在更新了问题。时间是不是因为你在模型的类中创建了一个方法?我只看到函数,没有类,所以我不确定尝试printe或print'Error':+stre如果要连接我认为需要转换的字符串,请查看从第一个异常中得到的消息stre@ValdemarEdvardSandalRolfsen然后读我的回答:我没有注意到这是一个django问题,我道歉。
can't subtract offset-naive and offset-aware datetimes
from django.utils import timezone

@property
def time_since_created(self):
    return (timezone.now()-self.created_at).total_seconds()