在我的模型中,我希望能够输入持续时间,如2 years5 months等.

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

在我的模型中

user_validPeriod = models.DurationField()

try 从我的管理面板添加新的User,如果我try 在出现的文本字段中键入类似2d2 days的内容,但得到的是Enter a valid duration.

enter image description here

有人能为我提供一个如何使用这个字段的例子吗?

推荐答案

要在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.timedeltahere和DurationField here的更多信息.

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

Django相关问答推荐

Django中有修改字段值的挂钩吗?

如何从Django';S模型中的方法中检索值?

Django中用于外键的嵌套循环

如何将我的函数添加到值参数?

DeleteView 中的success_message 未显示

如何在 PyCharm 中重命名 Django 元素?

如何从 django 自定义中间件类返回 rest_framework.response 对象?

Django,如何从模型表单的 Select 字段中删除空白 Select ?

Django SMTPAuthenticationError

在 django admin 中创建对象时如何自动插入当前用户?

Django:显示在每个页面上加载页面所花费的时间

Django:如何在视图中获取格式日期?

在 Django 中注册用户的最佳方法

如何将我的上下文变量传递给 Django 中的 javascript 文件?

如何重置 PostgreSQL 表上的 ID 序列

如何使用查询参数构造 Django 反向/url?

Django将HttpResponseRedirect返回到带有参数的url

如何在字段集中显示 Django 管理内联模型?

如何使用 Django/nginx 部署仅限 HTTPS 的站点?

Django: Force强制 Select 相关?