2016-06-17 24 views
1

我在學習django,目前我正在開發一個博客項目。我有一個基本的搜索功能,相應地過濾這些帖子。 它通過搜索我的標題和帖子的內容過濾器中的內容工作正常。我正在嘗試添加一個新的過濾器,以便我可以在例如「March」中輸入月份,然後過濾掉所有3月份發佈的帖子。帖子(只是普通帖子在博客)的所有機型都有:Django搜索帖子查詢過濾器月

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日」。

就像我提到的那樣,搜索功能在標題或內容=查詢時過濾了帖子,但如果我搜索「July」,它不起作用。然後它不會返回任何帖子。

我想知道我能做什麼,因此它可以通過發佈日期過濾帖子。

回答

0

我找到了解決方案。我意識到,如果我搜索「07」而不是7月,它會相應地過濾掉帖子,所以目前解決了我的問題,因爲博客目前只能用於我。它顯然可以轉換爲一些python的月份字。

這是因爲您輸入格式爲yyyy/mm/dd的DateField。因此Post.publish也將採用這種格式。