我应该如何在我的模型中使用 DurationField?
How should I use DurationField in my model?
在我的模型中,我希望能够输入持续时间,例如 2 年、5 个月 等
在版本 1.8 中引入了 DurationField,所以我尝试使用它:
在我的模型中我有
user_validPeriod = models.DurationField()
尝试从我的管理面板添加新的 User,如果我尝试输入 2d 或 2尽管我得到 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
在我的模型中,我希望能够输入持续时间,例如 2 年、5 个月 等
在版本 1.8 中引入了 DurationField,所以我尝试使用它:
在我的模型中我有
user_validPeriod = models.DurationField()
尝试从我的管理面板添加新的 User,如果我尝试输入 2d 或 2尽管我得到 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