django - 我应该如何在我的模型中使用 DurationField?

标签 django django-models

在我的模型中,我希望能够输入持续时间,例如 2 年5 个月 等。

在 1.8 版中引入了 DurationField,所以我尝试使用它:

在我的模型中

user_validPeriod = models.DurationField()

尝试从我的管理面板添加一个新的 User,如果我尝试在出现的文本中输入类似 2d2 days 的内容-虽然我得到 Enter a valid duration.

enter image description here

谁能给我举个例子说明这个字段应该如何使用?

最佳答案

要在 django 1.8 中使用 DurationField,您必须像这样使用 python datetime.timedelta 实例:

考虑这个模型:

from django.db import models

class MyModel(models.Model):
    duration = models.DurationField()

您可以这样设置持续时间:

import datetime
    
my_model = MyModel()
my_model.duration = datetime.timedelta(days=20, hours=10)

并以这种方式查询:

# Equal
durations = MyModel.objects.filter(duration=datetime.timedelta(*args, **kwargs))

# Greater than or equal
durations = MyModel.objects.filter(duration__gte=datetime.timedelta(*args, **kwargs))

# Less than or equal
durations = MyModel.objects.filter(duration__lte=datetime.timedelta(*args, **kwargs))

有关 datetime.timedelta here 的更多信息和 DurationField here .

在您的管理面板中,您可以使用以下格式的字符串输入持续时间:[DD] [[hh:]mm:]ss

关于django - 我应该如何在我的模型中使用 DurationField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30222660/

相关文章:

python - 为什么 post_save 在 Django 模型保存期间被提升两次?

Django - 如何在 'NOT IN' 中指定 'limit_choices_to' ?

python - "settings.DATABASES is improperly configured"与 django 1.6

mysql - Django多个外键多次引用同一个表?

DJANGO:如何以形式而不是文字 "model object"呈现模型对象名称?

python - Django - 导入错误 : No module named apps

Django 语言切换不起作用

django - 在 Django 中合并两个模型实例

python django 1.4 如何设置两个 WWW-Authenticate http header

jquery - 如何使用授权 header 发出 GET CORS 请求