2016-06-17 7 views
1

私はdjangoを学んでおり、現在私はブログプロジェクトに取り組んでいます。私はそれに応じて投稿をフィルタリングする基本的な検索機能を持っています。 投稿のタイトルとコンテンツフィルタのコンテンツを検索すると問題なく動作します。例えば3月に入力して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日」。

検索機能は、タイトルやコンテンツがクエリの場合は投稿の細かい部分をフィルタリングすると述べていますが、「7月」を検索すると機能しません。その後、投稿は返されません。

私は何ができるのかを知りたいので、公開日までに投稿をフィルタリングすることができます。

答えて

0

解決策が見つかりました。私は7月の代わりに "07"を検索するとそれに応じて投稿をフィルタリングするので、現時点では私のブログでしか使用されないので、現在私の問題を解決していることに気付きました。それは明らかにいくつかのPythonで月の単語に変換することができます。

これは、yyyy/mm/ddの形式でDateFieldを入力するためです。したがって、Post.publishもこの形式になります。

関連する問題