Python Django搜索帖子查询筛选月
我正在学习django,目前正在从事一个博客项目。我有一个基本的搜索功能,可以相应地过滤帖子。 通过搜索我的标题中的内容和帖子的内容过滤器,它工作得很好。我正在尝试添加一个新的过滤器,这样我就可以键入月份,例如“March”,然后它将过滤掉3月份发布的所有帖子。所有类型的帖子(只是博客中的一篇普通帖子)都有以下特点:Python Django搜索帖子查询筛选月,python,django,Python,Django,我正在学习django,目前正在从事一个博客项目。我有一个基本的搜索功能,可以相应地过滤帖子。 通过搜索我的标题中的内容和帖子的内容过滤器,它工作得很好。我正在尝试添加一个新的过滤器,这样我就可以键入月份,例如“March”,然后它将过滤掉3月份发布的所有帖子。所有类型的帖子(只是博客中的一篇普通帖子)都有以下特点: models.py class Post(models.Model): title = models.CharField(max_length=120) cont
models.py
class Post(models.Model):
title = models.CharField(max_length=120)
content = models.TextField()
publish = models.DateField(auto_now=False, auto_now_add=False)
在my views.py中,我有以下搜索功能:(仅相关内容)
在模板中,如果发布日期设置为2016-07-12,则发布属性如下所示:“2016年7月12日”
正如我提到的,当标题或内容为=时,搜索功能可以很好地过滤帖子,但如果搜索“July”,它就不起作用。然后它不会返回任何帖子
我想知道我能做些什么,这样它也能按发布日期过滤帖子。我找到了一个解决方案。我意识到如果我搜索“07”而不是“7月”,它会相应地过滤掉帖子,因此目前这解决了我的问题,因为博客目前只供我的朋友使用。显然,可以用一些python将其转换为month单词
这是因为您以yyyy/mm/dd格式输入日期字段。因此,Post.publish也将采用此格式。我找到了一个解决方案。我意识到如果我搜索“07”而不是“7月”,它会相应地过滤掉帖子,因此目前这解决了我的问题,因为博客目前只供我的朋友使用。显然,可以用一些python将其转换为month单词 这是因为您以yyyy/mm/dd格式输入日期字段。因此Post.publish也将采用此格式
views.py
queryset_list = Post.objects.all()
query = request.GET.get("q")
if query:
queryset_list = queryset_list.filter(
Q(title__icontains=query) |
Q(content__icontains=query) |
Q(publish__icontains=query)
).distinct()