Je veux obtenir une image comme plusieurs mots de recherche à la fois:
vues.py: p> modèles.py: p> localhost:8000/api/image_search?search=boxing cricket kohli marykom
3 Réponses :
Je vous suggère d'utiliser https://www.django-res-Framework.org/api-guide/filtering/#djangofilterbackend P> < un href = "https://django-filter.readthedocs.io/fr/latest/guide/rest_framework.html" rel = "NOFOollow NOREFERRER"> https://django-filter.readthedocs.io/fr/Latest/Guide /Rest_Framework.html P> Si vous ne voulez rien installer - vous pouvez remplacer Dans ce cas, assurez-vous de supprimer django-filtre code> pour ce cas, vous pouvez lire plus ici:
get_queryset code> méthode de votre
listApiview code>. Vous devez obtenir tous les paramètres de requête dont vous avez besoin et retourner le query filtré par eux. Dans ce cas, votre code sera comme celui-ci: p>
filtre_backends code>,
search_fields code> et
QuoiySet Code> Champs de
ImagesarchView Code> Classe P> P>
@afk Il y avait une faute de frappe dans image_keyword code>
Filtre code> Nom de l'argument. Essayez la version fixe de l'extrait
Je pense que c'est le même code si je cherche comme ceci Localhost: 8000 / API / image_search? Rechercher = Boxer Mary Kom Sis montrant l'image avec un mot-clé d'image exacte s'il suffit de rechercher le boxeur, alors il ne reste plus rien
Aussi si j'ajoute un autre mot clé d'image différente avec, sa ne montre rien
Lire Il p >
qui fait partie de docs pour vous, je pense < / p>
Le package de filtres Django-Rest-Framework fonctionne avec la classe Djangofilterbackend et vous permet de créer facilement des filtres dans des relations ou de créer plusieurs types de recherche de filtres pour un champ donné. Code> P >
title__STARTSWITH = OMS, titre__Startswith = quoi
Titre__Startwith% 3DWho, Titre__Startwith% 3DQue
(Title__Startswith% 3DWho) | (Title__Startwith% 3DQue)
% 28TItle__Startwith% 253dwho% 29% 20% 7c% 20% 28TItle__Startwith% 253DQue% 29
Filtres =% 28TItle__Startwith% 253dwho% 29% 20% 7c% 20% 28TItle__Startwith% 253DQue% 29 Code> P> P>
Avez-vous essayé de spécifier le paramètre de recherche plusieurs fois comme celui-ci? Dans ce cas, il devrait "rechercher" Query Param doit se retrouver en tant que liste.
localhost:8000/api/image_search?search=&search=boxing&search=cricket&search=kohli&search=marykom
ouais j'ai essayé de rechercher le seul paramètre seulement
Est-ce que cela répond à votre question? Comment utiliser un filtre normal avec SearchFilter Sur le cadre de repos Django?
non je ne veux pas que j'ai besoin de juste ou de condition entre les mots-clés de recherche
Avez-vous essayé de séparer les mots-clés avec
& code> comme ceci:
localhost: 8000 / API / image_search? Rechercher = Boxing & Cricket & Kohli & Marykom Code>?
oui ça ne fonctionne pas Voir l'image
Essayez ceci:
localhost: 8000 / API / image_search? Rechercher = Boxe, cricket, kohli, marykom code>
Cela ne fonctionne pas sa seule recherche de boxe, de cricket, de kohli