2015-04-17 1 views
2

Quelle est la bonne façon d'utiliser Django DurationField?Django: durationField valeur par défaut

Quand j'utilise time_passed = models.DurationField(default=0):

  • fonctionnent les migrations
  • par défaut de formulaire ne le font pas travail ('int' object has no attribute 'total_seconds')

Quand j'utilise time_passed = models.DurationField(default=timedelta()):

  • Migrations font pas travail (ValueError: Cannot serialize: datetime.timedelta(0))
  • par défaut de formulaire fonctionnent

Alors, quelle est la bonne façon d'utiliser une valeur par défaut sur le champ de durée ou d'une solution à ce problème?

+1

Cela pourrait être un double de http://stackoverflow.com/questions/29671903/django-durationfield-default –

+0

@EllaShar .. .Vous venez de relier à cette question exacte – rnevius

+0

@rnevius oups, édité. –

Répondre

0

La valeur par défaut doit être un timedelta. Ceci est un bug dans Django et est réglé pour être corrigé dans la version 1.8.1.

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

donc défaut à l'aide devrait être: time_passed = models.DurationField(default=timedelta())

+1

Vous ne voulez pas créer une instance (mutable) d'un objet timedelta ici, vous voulez seulement référencer la classe . Donc au lieu de '' models.DurationField (default = timedelta()) '', faites '' models.DurationField (default = timedelta) ''. Voir: https://docs.djangoproject.com/fr/dev/ref/models/fields/#default –