python - Django:durationField 默认值

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

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

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

  • 迁移工作
  • 表单默认值有效(“int”对象没有属性“total_seconds”)

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

  • 迁移工作(ValueError:无法序列化:datetime.timedelta(0))
  • 表单默认值有效

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

最佳答案

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

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

所以使用默认应该是:

from datetime import timedelta


time_passed = models.DurationField(default=timedelta)

关于python - Django:durationField 默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29699857/

相关文章:

mysql - Django 从 sqlite 迁移到 MySQL。夹具错误

python - GridSearchCV.best_score_ 得分设置为 'accuracy' 和 CV 时的含义

python用唯一数字替换列表中的元素

python - 用字典中的相应值替换字符串中的键

python - 带两个下划线的正则表达式

django - python sqlite 在终端-django 中的使用

python - django ORM 中的多个查询

python - 抽象 Django 模型中的 app_label

python - NoReverseMatch at/accounts/password-reset/用于 Django 中的密码重置

python - 在 Django 中扩展模型的正确方法