Добрый день,
Изучаю django, пилю блог. решил добавить поиск. Использую haystack + elasticsearch.
Вроде бы все сделал по документации, но все равно не получается реализовать. В самом низу есть ссылка на исходники. Я уверен, что проблема тривиальна и я ее не вижу из-за не опытности.
При заходе на страницу search.html ввожу в поле часть названия статьи выводит сообщение что результатов нет. 
Единственное что я заметил необычного, это что при обновлении индексов выводит сообщение что ничего не обновилось и ругается на тайм зону.
python manage.py update_index
/home/oleg/.virtualenvs/test/lib/python3.4/site-packages/django/db/models/fields/__init__.py:1278: RuntimeWarning: DateTimeField Post.datetime received a naive datetime (2015-08-04 10:35:48.135647) while time zone support is active.
  RuntimeWarning)
Indexing 0 posts
Но если я убираю строку из search_indexes.py
def index_queryset(self, using=None):
       """Used when the entire index for model is updated."""
       return self.get_model().objects.filter(datetime=datetime.datetime.now())
то обновление идексов происходит
python manage.py update_index
Indexing 5 posts
но даже при индексации, все равно поиск не происходит.
вот исходники:
models.py
class Post(models.Model):
    title = models.CharField(max_length=255) # title of post
    datetime = models.DateTimeField(u'Дата публикации') # date of post
    content = models.TextField(max_length=10000) # text of post
    background_image = models.ImageField(upload_to="pics/", verbose_name=u"Your image", help_text="150x150", null=True)
    
    def __str__(self):
        return self.title
    def get_absolute_url(self):
        return '%i/' % self.id
views.py
class MySearchView(SearchView):
    template_name = "blog/search.html"
    def get_queryset(self):
        queryset = super(MySearchView, self).get_queryset()
        return queryset.filter(pub_date__gte=date(2015, 1, 1))
    def get_context_data(self, *args, **kwargs):
        context = super(MySearchView, self).get_context_data(*args, **kwargs)
        return context
search_indexes.py
from haystack import indexes
from .models import Post
import datetime
class PostIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    title = indexes.CharField(model_attr='title')
    content = indexes.CharField(model_attr='content')
    def get_model(self):
        return Post
    def index_queryset(self, using=None):
       """Used when the entire index for model is updated."""
       return self.get_model().objects.filter(datetime=datetime.datetime.now())
search.html
<form type="get" action=".">
    <input type="text" name="q">
    <button type="submit">Search</button>
</form>
 {% if query %}
    {% for post in posts %}
        <h1>{{ post.title }}</h1>
        <p>{{ post.content }}</p>
    {% empty %}
        <p>No results found.</p>
    {% endfor %}
{% endif %}
utls.py
urlpatterns = patterns('',  
  url(r'^search/?$', MySearchView.as_view(), name='search'),
)
древо файлов в проекте:
├── blog
│   ├── images
│   ├── templates
│   │   ├── blog
│   │   │   ├── base.html
│   │   │   ├── post_detail.html
│   │   │   ├── post_list.html
│   │   │   └── search.html
│   │   ├── __init__.py
│   │   └── search
│   │       └── indexes
│   │           └── blog
│   │               └── post_text.txt
│   ├── __init__.py
│   ├── migrations
│   ├── models.py
│   ├── search_indexes.py
│   ├── admin.py
│   ├── forms.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
│   ├── urls.py
│   └── views.py
├── db.sqlite3
├── manage.py
├── media
├── mysiteblog
└── static
Вот ссылка на сами исходники, дабы было проще понять.
https://drive.google.com/file/d/0B4Taa_ekRbyAWEJtc...