Джанго Хейстек - Как сделать заказ по метке времени? - PullRequest
1 голос
/ 05 ноября 2011

Я новичок в Django и Haystack ... Мне нужно знать, как можно упорядочить результаты поиска по дате / метке времени, самые последние сначала.

Вот мой model.py:

class adsText(models.Model):
    hash          = models.TextField(primary_key=True)
    title         = models.TextField()
    description   = models.TextField()
    country       = models.TextField()
    zone          = models.TextField()
    location      = models.TextField()
    date_inserted = models.DateTimeField()
    class Meta:
        db_table = u'ads_text'
        managed = False

    def __unicode__(self):
        return self.title

Мой search_indexes.py:

class adsTextIndex(indexes.SearchIndex):
    text            = indexes.CharField(document=True, use_template=True)
    title           = indexes.CharField(model_attr='title')
    description     = indexes.CharField(model_attr='description')
    zone            = indexes.CharField(model_attr='zone')
    location        = indexes.CharField(model_attr='location')
    date_inserted   = indexes.DateTimeField(model_attr='date_inserted')

    def index_queryset(self):
        """Used when the entire index for model is updated."""
        return adsText.objects.order_by('-date_inserted')
        #return adsText.objects.filter(date_inserted__lte=datetime.datetime.now())

site.register(adsText, adsTextIndex)

Мои urls.py:

urlpatterns = patterns('',
    (r'^search/', include('haystack.urls')),
)

Я протестировал переход на эту строку кода в search_indexes.py, но он не работает должным образом:

return adsText.objects.order_by('-date_inserted')

Я прочитал, что можно использовать что-то подобное в urls.py:

.
sqs = SearchQuerySet().order_by('-date_inserted')

Я сомневаюсь, как я могу добавить этот код в «urlpatterns» urls.py, какой-либо ключ к тому, как этого добиться?

С наилучшими пожеланиями,

1 Ответ

5 голосов
/ 12 апреля 2012

Посмотрите здесь: http://django -haystack.readthedocs.org / en / latest / views_and_forms.html # views

В частности, вы, вероятно, хотите, чтобы ваш urlconf был похож:

from django.conf.urls.defaults import *
from haystack.query import SearchQuerySet
from haystack.views import SearchView

sqs = SearchQuerySet().order_by('-date_inserted')

urlpatterns = patterns('haystack.views',
    url(r'^search/$', SearchView(
        searchqueryset=sqs,
    )),
)
...