如何使用 Django_Filters 过滤时间

Posted

技术标签:

【中文标题】如何使用 Django_Filters 过滤时间【英文标题】:How can I filter time by using Django_Filters 【发布时间】:2022-01-23 18:07:03 【问题描述】:
start_time = django_filters.TimeFilter(lookup_expr='gte', field_name='created_at__hour', input_formats="%H")
end_time = django_filters.TimeFilter(lookup_expr='lte', field_name='created_at__hour', input_formats="%H")

输入:start_time = 10

结果: “开始时间”: [ “输入有效时间。” ]

【问题讨论】:

【参考方案1】:

由于您对 __hour 查找进行过滤,因此这些是整数,因此您可以使用以下内容进行过滤:

start_time = django_filters.NumberFilter(lookup_expr='gte', field_name='created_at__hour')
end_time = django_filters.NumberFilter(lookup_expr='lte', field_name='created_at__hour')

【讨论】:

我认为您的意思是使用 NumberFilter 而不是 IntegerField。谢谢! @ohmywollie:是的,有点困惑。谢谢!更新

以上是关于如何使用 Django_Filters 过滤时间的主要内容,如果未能解决你的问题,请参考以下文章

使用 django_filters 过滤多个参数

如何使用 django_filters.DateFilter?

Django_filters - 未显示带有 ForeignKey 的 MultipleChoiceFilter

Django Rest Framework django_filters 返回空列表

DRF的过滤

如何内联输出 django_filters.RangeFilter 文本框?