创建模型实例前的时间戳不小于模型实例创建时间戳django
Timestamp before creating model instance not less than model instance creation timestamp django
我在某些模型上进行了一些测试,所以我创建了一个变量 before_creation = datetime.now()
我的模型有一个字段定义为
date_created = models.DateTimeField(auto_now_add=True)
在我的测试中,这是怎么做到的
before_creation
create_model_instance
然后测试 before_creation
小于 mymodel.date_created
,在我看来应该通过,但它失败并显示以下消息 AssertionError: datetime.datetime (some timestamp) not less than datetime.datetime ((some other timestamp)
。这是一个错误吗?我试过切换到时区,但没有成功。
如果差异以微秒为单位,则您的数据库可能会截断它们。因此,如果 before_creation
位于 12:00:00.005,而 date_created
位于 12:00:00.008,则 date_created
将返回为 12:00:00。那么你会有 before_creation > date_created
.
检查以确保不是这种情况。或者使用:
before_creation = datetime.now().replace(microseconds=0)
并将您的断言更改为小于或等于。
我在某些模型上进行了一些测试,所以我创建了一个变量 before_creation = datetime.now()
我的模型有一个字段定义为
date_created = models.DateTimeField(auto_now_add=True)
在我的测试中,这是怎么做到的
before_creation
create_model_instance
然后测试 before_creation
小于 mymodel.date_created
,在我看来应该通过,但它失败并显示以下消息 AssertionError: datetime.datetime (some timestamp) not less than datetime.datetime ((some other timestamp)
。这是一个错误吗?我试过切换到时区,但没有成功。
如果差异以微秒为单位,则您的数据库可能会截断它们。因此,如果 before_creation
位于 12:00:00.005,而 date_created
位于 12:00:00.008,则 date_created
将返回为 12:00:00。那么你会有 before_creation > date_created
.
检查以确保不是这种情况。或者使用:
before_creation = datetime.now().replace(microseconds=0)
并将您的断言更改为小于或等于。