2010-11-29 6 views
1

Je viens de commencer à faire un site web avec django + python et je veux implémenter un formulaire de recherche pour pouvoir chercher sur tous mes objets de base de données. Ce que je veux est; quand j'écris pour un exemple S Je veux que le champ de recherche affiche tous mes objets qui commencent par la lettre S dans une liste, tout comme le champ Tags ci-dessous sur ce site.formulaire de recherche avec django + python

Est-ce que quelqu'un a un bon ide pour implémenter ceci avec django?

+0

qu'avez-vous fait jusqu'à présent? –

+0

juste une simple recherche: f = searchForm (request.POST) ... pages = Page.objects.filter (name__contains = f.cleaned_data ["text"]) – hidayat

Répondre

6

Pour une mise en œuvre de recherche django décent, je recommande de regarder djapian. Cependant, pour ce que vous faites, je recommanderais une requête utilisant le paramètre ISTARTSWITH. Considérez ce qui suit:

views.py

def search(req): 
    if req.GET: 
     search_term = req.GET['term'] 
     results = ModelToSearch.objects.filter(field__istartswith=search_term) 
     return render_to_response('search.html', {'results': results}) 
    return render_to_response('search.html', {}) 

search.html

<html> 
<body> 
<form> 
    <input name='S'> 
</form> 
{% if results %} 
Found the following items: 
<ol> 
{% for result in results %} 
    <li>{{result}}</li> 
{% endfor %} 
</ol> 
{% endif %} 
</body> 
</html>