Créer une fonction de recherche
Bonjour, je souhaite intégrer une fonction de recherche à mon application. Pour le moment je ne souhaite pas travailler sur les fichiers views,urls et les templates, je cherche juste à créer la fonction me permettant de rechercher dans ma base de données et d'afficher le résultat dans le terminal.
J'ai commencé à chercher et j'ai trouvé ce code là :
Code:
1 2 3 4 5
|
import re
def normalizequery(querystring)
re.compile(r'[^\s";,.:]+').findall(query_string) |
Et aussi ce bout de code ( l'indentation est incorrecte)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| from django.db.models import Q
from polls.models import Patient, Study etc....
def getquery(querystring, searchfields):
query = None # Query to search for every search term
terms = normalizequery(querystring)
for term in terms:
orquery = None # Query to search for a given term in each field
for fieldname in searchfields:
q = Q(**{"%s__icontains" % fieldname: term})
if orquery is None:
orquery = q
else:
orquery = orquery | q
if query is None:
query = orquery
else:
query = query & or_query
return query |
Test de la fonction :
Code:
1 2 3 4 5
| qry = get_query('Bob cancer ', ['name','description'])
fe = Patient.objects.filter(qry)
fe.query |
Le problème c'est que je ne sais pas ou placer ce bout de code, j'ai déjà une commande personnalisée qui me permet de remplir ma base de données mais dois-je recréer une autre commande personnalisée pour ce code ?
Si quelqu'un a des conseils ou des infos je suis preneur, Merci d'avance
Yann