Где я ошибаюсь в фильтрации Django
Я хочу создать строку поиска для моих флеш-карт, я хочу фильтровать и это моя папка views.py, но код, который я написал, не работает.
В моей базе данных есть карточки со словами (флеш-карты для запоминания иностранного языка). Я хочу иметь возможность искать в этих карточках конкретно, я хочу, чтобы появлялась карточка, относящаяся к слову, которое я набрал на входе.
Вот мой поисковый ввод на моей html-странице:
<div class="input-group">
<div class="form-outline">
<input type="text" name="search" class="form-control" />
<label class="form-label">Search</label>
</div>
<button type="button" class="btn btn-primary">
<i class="fas fa-search"></i>
</button>
</div>
Здесь я пытался получить значение, введенное в input с помощью 'search'. Название карточки в моей базе данных 'tr' в фильтре
def ingilizce(request):
if 'search' in request.GET:
search = request.GET['search']
words = english.objects.filter(tr=search)
else:
words = english.objects.all()
randomclass = random.choice(
['bg-success', 'bg-primary', 'bg-dark', 'bg-warning', 'bg-primary'])
paginator = Paginator(words, 6)
page_number = request.GET.get('page', 1)
try:
page = paginator.page((page_number))
except:
page = paginator.page(1)
return render(request, 'english.html', {'words': page, 'randomclass': randomclass})
Вы должны использовать фильтр запроса in
:-
def ingilizce(request):
search = request.GET.get('search', None)
print("Input search value : {}".format(search)) # for debugging
if search:
words = english.objects.filter(tr__in=search)
else:
words = english.objects.all()