Здравствуйте, я работаю в django, как использовать форму поиска с сайта документов Django. Ниже приведена некоторая информация ниже. Теперь, есть способ, который я могу выполнить для поиска деталей для названия? Например, если бы я хотел найти книгу под названием «Apress», но вместо ввода всего слова я просто написал «ap», чтобы получить Apress. Есть ли способ достижения этого решения?Редактирование поиска в 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>
Что не так с кодом, который у вас есть? –
Ничего, но я хочу выполнить поиск частей. Например, если бы я хотел найти название книги под названием «Гарри Поттер», я бы хотел просто набрать «ha» или «har» или иначе увидеть его. – Shehzad009