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à :
Et aussi ce bout de code ( l'indentation est incorrecte)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 import re def normalizequery(querystring) re.compile(r'[^\s";,.:]+').findall(query_string)
Test de la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager