Django:durationField默认值

时间:2015-04-17 12:57:37

标签: python django django-models django-forms django-1.8

使用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)
  • 表单默认工作

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

2 个答案:

答案 0 :(得分:0)

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

请参阅:https://code.djangoproject.com/ticket/24566

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

答案 1 :(得分:0)

MatZeg 的 answer on this similar question 表明您仍然可以传递参数:

pause = DurationField(default=timedelta(minutes=20))