【问题标题】:Django filter on TimeFieldTimeField 上的 Django 过滤器
【发布时间】:2015-11-05 18:55:11
【问题描述】:

在我的模型中,我有一个 TimeField:

time = models.TimeField(db_index=True)

现在我必须按此值进行过滤: 例如我需要做类似的事情:time == "12:30"

**** 编辑 *****

我还需要做类似的事情:时间在一个范围内:from 12:15 to 12:15

我该怎么做?

【问题讨论】:

    标签: python django django-orm


    【解决方案1】:

    你可以这样做:

    YourModel.objects.filter(time__contains='16:23')
    

    如果你改用这个:

    YourModel.objects.filter(time='16:23')
    

    您将永远找不到它,因为 TimeField 对象已保存,包括毫秒:datetime.time(16, 23, 23, 952151)

    编辑:

    好的,假设你有字符串,你可以这样做:

    begin = datetime.datetime.strptime('12:14', '%H:%M').time()
    end = datetime.datetime.strptime('12:16', '%H:%M').time()
    result = YourModel.objects.filter(time__range=(begin, end))
    

    【讨论】:

    • @Safari 是你需要的吗?它没有经过测试,但我很确定它可以工作
    猜你喜欢
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 2017-10-09
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多