【发布时间】:2020-11-14 14:17:53
【问题描述】:
我使用的模型具有名为 start_time 和 finish_time 的字段,两者都是 DateTimeField,我试图通过 start_time 减去 finish_time 来计算响应时间。
在外壳中:
>>> obj = Quizgame.objects.get(user=harry)
>>> start = obj.start_time
>>> end = obj.finish_time
>>> result = end - start
>>> result
datetime.timedelta(seconds=31, microseconds=912224)
但在 django 视图中,当我执行此操作时,我会收到 unsupported operand type(s) for -: 'method' and 'datetime.datetime'
的错误views.py
def final_part(request):
obj = Quizgame.objects.get(user=request.user)
start = obj.start_time
end = obj.end_time
result = end - start
return HttpResponse(result)
models.py
class Quizgame(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
total_score = models.DecimalField("Total score", default=0, decimal_places=2, max_digits=6)
start_time = models.DateTimeField(auto_now_add=True)
finish_time = models.DateTimeField(null=True)
我稍后使用 datetime.datetime.now() 设置完成时间
【问题讨论】:
-
一个使用
finish_time,另一个使用end_time。 -
也输入你的 Quizegame 模型代码!