如何在模型中使用DurationField?

2024-04-28 07:00:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

在我的模型中 user_validPeriod = models.DurationField()

尝试从我的管理面板添加一个新的用户,如果我尝试在出现的文本字段中键入类似2d2d的内容,尽管我得到了Enter a valid duration

enter image description here

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


Tags: 用户模型文本版本面板内容键入models
1条回答
网友
1楼 · 发布于 2024-04-28 07:00:32

要在django 1.8中使用DurationField,必须使用如下pythondatetime.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.timedeltahere和DurationFieldhere的详细信息。

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

相关问题 更多 >