【问题标题】:django subracting datetime fieldsdjango 减去日期时间字段
【发布时间】: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 模型代码!

标签: python django


【解决方案1】:

你使用了 obj.end_time 而不是 obj.finish_time

def final_part(request):
    obj = Quizgame.objects.get(user=request.user)
    start = obj.start_time
    end = obj.finish_time
    result = end - start
    return HttpResponse(result)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    相关资源
    最近更新 更多