【发布时间】:2015-06-24 08:14:39
【问题描述】:
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)) - 表单默认工作
那么在持续时间字段上使用默认值的正确方法是什么?或者解决这个问题的方法是什么?
【问题讨论】:
-
@EllaShar...你刚刚链接到这个确切的问题
-
@rnevius 哎呀,已编辑。
-
@EllaShar 我知道,但这个问题从未得到答案(有目的的答案也不起作用)。我也无法对此发表评论。
-
这看起来像一个错误,你应该报告它。
django.db.migrations.writer.MigrationWriter.serialize有一堆针对不同数据类型的特殊情况,特别是日期、日期时间和时间,所以看起来timedelta也应该在那里。作为一种解决方法,您可以尝试创建DurationField的子类并实现deconstruct()method ...这已经是在 Django 的EmailField、IPAddressField和其他一些中完成的方式
标签: python django django-models django-forms django-1.8