7

使用 Django 的正确方法是DurationField什么?

当我使用time_passed = models.DurationField(default=0)

  • 迁移工作
  • 表单默认值不起作用( 'int' object has no attribute 'total_seconds')

当我使用time_passed = models.DurationField(default=timedelta())

  • 迁移不起作用( ValueError: Cannot serialize: datetime.timedelta(0))
  • 表单默认工作

那么在持续时间字段上使用默认值的正确方法是什么,或者解决这个问题的方法是什么?

4

2 回答 2

8

默认值应该是 timedelta。这是 Django 中的一个错误,将在 1.8.1 版本中修复。

见:https ://code.djangoproject.com/ticket/24566

所以使用默认应该是: time_passed = models.DurationField(default=timedelta())

于 2015-04-20T06:38:33.160 回答
0

MatZeg对这个类似问题的回答表明您仍然可以传递参数:

pause = DurationField(default=timedelta(minutes=20))
于 2021-01-10T18:55:09.347 回答