【发布时间】:2021-02-13 15:13:44
【问题描述】:
我有一个表,其中包含使用 django 模板语言显示的 CharFields 和 DateTimeFields。 DateTimeFields 以“2020 年 8 月 18 日,下午 6:33”的格式显示。有没有一种简单的方法可以根据该特定格式对 DateTimeFields 进行基于文本的过滤/查询?例如,搜索“aug”或“Aug”或“Aug. 18”或“2020”应该会找到该条目。
我尝试过 icontains,但这似乎适用于底层格式,而不是显示格式。例如,搜索“2020-08”会找到该条目,但搜索“Aug”不会。
作品:
Entry.objects.get(created__icontains='2020')
Entry.objects.get(created__icontains='2020-08')
Entry.objects.get(created__icontains='33')
不起作用:
Entry.objects.get(created__icontains='Aug')
Entry.objects.get(created__icontains='6:33')
Entry.objects.get(created__icontains='p.m')
- 有没有办法使用特定的日期时间显示格式进行搜索?
- 底层的 DateTimeField 是什么格式?是否依赖于数据库?
2 的部分答案:底层格式似乎是格式中的 UTC “2020-05-12 18:58:23.210862+00”。在任何文本上使用图标都可以。
为了澄清,这个想法是搜索具有相同文本的所有字段(日期时间和字符串)。因此,“Aug”应该返回一个日期字段为“Aug 13”或字符串字段为“Augustine”的行。有点像一般的谷歌搜索。
【问题讨论】:
标签: django django-filter