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

How should I use DurationField in my model?

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

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

在我的模型中我有

user_validPeriod = models.DurationField()

尝试从我的管理面板添加新的 User,如果我尝试输入 2d2尽管我得到 Enter a valid duration.

,但出现的文本字段中的天数

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

要在 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 and on DurationField here 的更多信息。

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