2015-04-17 133 views
2

什麼是正確的方式來使用Django的DurationFieldDjango:durationField默認值

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

  • 遷移工作時,我使用time_passed = models.DurationField(default=timedelta())
  • 表默認工作('int' object has no attribute 'total_seconds'

  • 遷移工作(ValueError: Cannot serialize: datetime.timedelta(0)
  • 表默認工作

那麼,什麼是使用的持續時間字段或默認值,針對此問題的解決方法的正確方法?

+1

這可能是http://stackoverflow.com/questions/29671903/django-durationfield-default –

+0

@EllaShar的副本.. 。你剛剛鏈接到這個確切的問題 – rnevius

+0

@rnevius oops,編輯。 –

回答

0

默認值應該是一個timedelta。這是Django中的一個bug,它將在1.8.1版本中修復。

請參見:https://code.djangoproject.com/ticket/24566

因此,使用默認的應該是: time_passed = models.DurationField(default=timedelta())

+1

你不想在這裏創建一個timedelta對象的(可變的)實例,你只想引用這個類。因此,不要使用models.DurationField(default = timedelta()),而是使用models.DurationField(default = timedelta)''。請參閱:https://docs.djangoproject.com/en/dev/ref/models/fields/#default –