【问题标题】:Django search posts query filter monthDjango 搜索帖子查询过滤器月份
【发布时间】:2016-06-17 18:35:35
【问题描述】:

我正在学习 django,目前正在开发一个博客项目。我有一个基本的搜索功能,可以相应地过滤帖子。 通过在我的标题和帖子的内容过滤器中搜索内容,它可以正常工作。我正在尝试添加一个新过滤器,以便我可以输入月份,例如“三月”,然后它将过滤掉三月份发布的所有帖子。 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-07-12,则发布属性显示如下:“2016 年 7 月 12 日”。

就像我提到的,当标题或内容为查询时,搜索功能会很好地过滤帖子,但如果我搜索“七月”,它就不起作用。然后它不会返回任何帖子。

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

【问题讨论】:

    标签: python django


    【解决方案1】:

    我找到了解决方案。我意识到,如果我搜索“07”而不是 7 月,它会相应地过滤掉帖子,所以目前这正在解决我的问题,因为该博客目前仅供我使用。显然可以用一些python将其转换为月份。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多