Django搜索帖子查询过滤月

时间:2016-06-17 18:35:35

标签: python django

我正在学习django,我目前正在开展一个博客项目。我有一个基本的搜索功能,相应地过滤帖子。 通过在帖子的标题和内容过滤器中搜索内容,它可以正常工作。我正在尝试添加一个新的过滤器,以便我可以输入月份,例如" March"然后它将过滤掉3月份发布的所有帖子。 Post的所有模型(只是博客上的普通帖子)都有:

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)

在我的views.py中,我有以下搜索功能:(只有相关内容)

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()

在模板中,发布属性显示如下:" 2016年7月12日"如果发布日期设置为2016-07-12。

就像我提到的那样,搜索功能可以在标题或内容=查询时过滤帖子,但如果我搜索" 7月和#34;它就不起作用。然后它不会返回任何帖子。

我想知道我能做什么,所以它也可以按发布日期过滤帖子。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我意识到,如果我搜索" 07"而不是7月,它相应地筛选出帖子,所以目前正在解决我的问题,因为博客目前只会被我使用。它显然可以用一些python转换为月份字。

这是因为您以yyyy / mm / dd格式输入DateField。因此,Post.publish也将采用这种格式。