2017-04-24 1 views
0

je peux aller dans ma coquille et le typeSearchQuerySet(). Filtrer (contenu = « contenu ») renvoie les résultats, mais ils ne se présentent pas dans search.html

sqs = SearchQuerySet().filter(content='content') 
len(sqs) 

et j'obtenir des résultats. Je les ai inspectés et quand je tape

sqs[0] 
sqs[0].id 
sqs[0].text 

Je reçois des résultats cohérents. Toutefois, lorsque j'utilise le formulaire de recherche sur mon site Web, je n'obtiens aucun résultat. Je ne définis même pas mon propre SearchView. C'est celui par défaut. Sur le modèle, j'ai essayé

{% for result in page.object_list %} 
{% for result in object_list %} 
{% for result in page_obj.object_list %} 

et n'obtenez toujours aucun résultat. Et la requête couriez parce que je peux mettre des choses à l'intérieur

{% if query %} 

pour que fonctionne bien. Que fais-je?

Merci.

+0

Publiez vos vues.py –

+0

Il s'agit de la vue Haystack par défaut. –

+0

Que vous donne '{{page.object_list | length}}' dans les modèles? –

Répondre

0

Je résolus en remplaçant ce

url(r'^search/', include('haystack.urls')), 

avec

url(r'^search/?$', views.SearchResultsView.as_view(), name='search-view'), 

et faire mon propre SearchResultsView avec rien de spécial dans ce

class SearchResultsView(SearchView): 
    template_name = 'search/search.html' 
    form_class = MySearchForm 
    queryset = SearchQuerySet().all() 
    paginate_by = 10 
    context_object_name = 'object_list' 

et en utilisant

page_obj 

dans le modèle