1

Je suis en train d'obtenir le 10 objets tels que:Comment obtenir n objets de recherche à partir d'un SearchQuerySet sans changer le type?

q_auth = SearchQuerySet().filter(content=validate_query) 
q_auth = q_auth[:10] 
print type(q_auth) 

La sortie que je veux est: <class 'haystack.query.SearchQuerySet'> mais je reçois est <type 'list'>.

Quelqu'un peut-il m'aider s'il vous plaît?

+0

Pourquoi voudriez-vous que le type soit un 'SearchQuerySet'? C'est une liste après tout –

+0

@RohitJain uhm .. Je peux voir d'où vient l'OP: [les docs] (https://docs.djangoproject.com/fr/1.9/topics/db/queries/#limiting-querysets) disons que c'est encore un jeu de questions – Pynchia

+0

@Pynchia Hmm, je vois. –

Répondre

0

J'ai essayé quelque chose de similaire comme votre code, mais a obtenu la sortie comme ceci:

<class 'django.db.models.query.QuerySet'> 

Sur la base de ce que vous avez, je pense que vous pouvez essayer quelque chose comme:

print type(q_auth[0]) 
+0

Moi aussi, je ne peut pas reproduire le '' – Pynchia

+0

@Pynchia Je pense qu'il devrait y avoir plus d'informations. – shellbye

0

Regarder le source, vous verrez que q_auth[:10] renvoie une liste de résultats. Un SearchQuerySet est paresseux et peut ne pas avoir tous les résultats jusqu'à ce que vous les récupériez avec le découpage, c'est-à-dire q_auth[:10].

Il suffit de faire:

first_results = q_auth[:10] 

et accéder à un résultat avec:

first_results[0] 

Je recommande de ne pas le faire:

q_auth = q_auth[:10] 

parce que votre exemple q_auth de SearchQuerySet ne serait pas disponible pour récupérer plus de résultats plus tard.

+0

Il convertit le type. Je veux que le type soit '' mais il me donne une liste – Subhajit

+0

'q_auth' est déjà de ce type. Le découpage renvoie une liste. C'est ainsi que cela est mis en œuvre. En fait, cela a beaucoup de sens. S'il vous plaît essayez le code dans ma réponse. Utilisez un nom différent pour votre résultat de découpage et 'q_auth' conserve son type. –

+0

J'ai essayé le code dans votre réponse, mais cela a changé le type. J'ai donc changé mon code pour utiliser une liste plutôt que l'objet de recherche. – Subhajit