Bonjour je travaille dans django comment utiliser un formulaire de recherche du site de documents Django. Voici quelques informations ci-dessous. Maintenant, y a-t-il un moyen de produire une partie de recherche de titre? Par exemple, si je voulais rechercher un livre intitulé "Apress", mais au lieu de taper le mot entier, je viens d'écrire "ap" pour obtenir Apress. Existe-t-il un moyen de parvenir à cette solution?Modifier une vue de recherche dans Django
from django.db.models import Q
from django.shortcuts import render_to_response
from models import Book
#views.py
def search(request):
query = request.GET.get('q', '')
if query:
qset = (
Q(title__icontains=query) |
Q(authors__first_name__icontains=query) |
Q(authors__last_name__icontains=query)
)
results = Book.objects.filter(qset).distinct()
else:
results = []
return render_to_response("books/search.html", {
"results": results,
"query": query
})
#search html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>Search{% if query %} Results{% endif %}</title>
</head>
<body>
<h1>Search</h1>
<form action="." method="GET">
<label for="q">Search: </label>
<input type="text" name="q" value="{{ query|escape }}">
<input type="submit" value="Search">
</form>
{% if query %}
<h2>Results for "{{ query|escape }}":</h2>
{% if results %}
<ul>
{% for book in results %}
<li>{{ book|escape }}</l1>
{% endfor %}
</ul>
{% else %}
<p>No books found</p>
{% endif %}
{% endif %}
</body>
</html>
Quel est le problème avec le code que vous avez? –
Rien, mais je veux effectuer des recherches de pièces. Par exemple, si je voulais chercher le titre d'un livre intitulé "Harry Potter", je veux pouvoir taper "ha" ou "har" ou autrement pour le voir. – Shehzad009