我正在使用django-haystack进行搜索。默认情况下,它首先显示最旧的对象,而我想在最上面显示最新的对象。任何人都可以指导我如何做到这一点? 我的代码示例如下所示:
class PostIndex(indexes.RealTimeSearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
created = indexes.DateTimeField(model_attr='created')
def get_model(self):
return Post
def index_queryset(self):
return self.get_model().objects.filter(created__lte=datetime.datetime.now())
任何人都可以告诉我确切的文件,我将不得不进行更改和更改?我是否必须在haystack中对query.py文件进行更改? Query.py有
def order_by(self, *args):
"""Alters the order in which the results should appear."""
clone = self._clone()
for field in args:
clone.query.add_order_by(field)
return clone
如何更改此内容以显示最新内容?
答案 0 :(得分:3)
您可以在haystack_urls.py(或其他任何名称)中设置order_by,例如
qs = SearchQuerySet().order_by('-created')
urlpatterns = patterns('haystack.views',
url(r'^$', SearchView(searchqueryset=qs), name='haystack_search'),
)