创建模型实例之前的时间戳不小于模型实例创建时间戳django

时间:2015-03-27 10:29:41

标签: python django sqlite datetime django-models

我正在对某些模型进行一些测试,因此我创建了一个变量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)。这是一个错误吗?我试过没有运气切换到时区。

1 个答案:

答案 0 :(得分:1)

如果差异以微秒为单位,则您的数据库可能会截断这些差异。因此,如果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)

将你的断言改为小于或等于。