在我的模型中,我希望能够输入持续时间,例如 2年, 5个月等。
在版本 1.8 DurationField
中引入,所以我尝试使用它:
在我的模型中,我有
user_validPeriod = models.DurationField()
尝试从我的管理面板添加新的用户,如果我在出现的文本中尝试输入类似 2d 或 2天的内容 - 虽然我得到了Enter a valid duration
。
有人可以向我提供一个如何使用该字段的示例吗?
答案 0 :(得分:26)
要在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