在我的模型中,我希望能够输入持续时间,例如 2 年、5 个月 等。
在 1.8 版中引入了 DurationField,所以我尝试使用它:
在我的模型中
user_validPeriod = models.DurationField()
尝试从我的管理面板添加一个新的 User,如果我尝试在出现的文本中输入类似 2d 或 2 days 的内容-虽然我得到 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 的更多信息和 DurationField here .
在您的管理面板中,您可以使用以下格式的字符串输入持续时间:[DD] [[hh:]mm:]ss
关于django - 我应该如何在我的模型中使用 DurationField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30222660/