Когда я фильтрую свою панель поиска, я получаю эту ошибку. Я не уверен, что я делаю неправильно здесь
Смотрю этот урок: https://thewikihow.com/video_llbtoQTt4qw&t=3399s
просмотры.py
class pplList(LoginRequiredMixin,ListView):
model = People
context_object_name = 'people'
def get_context_data(self, **kwargs):
search_input = self.get.GET.get('search-area') or ''
if search_input:
context['people'] = context['people'].filter(name__icontains=search_input)
return context
people_list.html
{%if request.user.is_authenticated %}
<p>{{request.user}}</p>
<a href = "{% url 'logout' %}">Logout</a>
{% else %}
<a href = "{% url 'login' %}">Login</a>
{% endif %}
<hr>
<h1>Interviewee Dashboard {{color}}</h1>
<a href = "{% url 'pplCre' %}"> Add Candidates</a>
<form method = "get">
<input type = 'text' name = 'search-are'>
<input type = 'submit' value = 'Search'>
</form>
<table>
<tr>
<th> Item</th>
<th> </th>
</tr>
{% for people in people %}
<tr>
<td>{{people.name}}</td>
<td><a href = "{% url 'pplDet' people.id %}">View</a></td>
<td><a href = "{% url 'pplUpd' people.id %}">Edit</a></td>
<td><a href = "{% url 'pplDel' people.id %}">Delete</a></td>
</tr>
{% empty %}
<h3>No items in list</h3>
{% endfor %}
</table>






Есть небольшие ошибки, как и должно быть self.request.GET.get('search-area'), также вы не вызвали метод super(), поэтому попробуйте это представление:
class pplList(LoginRequiredMixin,ListView):
model = People
context_object_name = 'people_list'
def get_context_data(self, **kwargs):
context=super().get_context_data(**kwargs)
search_input = self.request.GET.get('search-area', False)
if search_input:
context['people']= People.objects.filter(name__icontains=search_input)
return context
В Html имя поля search-are и доступ к нему в виде self.request.GET.get('serach-area', False) kindly change its name to search-area` во входном теге Html.
Кроме того, представления на основе классов обычно записываются в PascalCase, поскольку они являются классами Python и требуют, чтобы их имя было записано как имя модели в качестве префикса, а фактическое имя представления — в виде суффикса, поэтому оно должно быть PeopleListView.
все еще на странице со всеми людьми
@Vignesh Пожалуйста, обратите внимание, что в шаблоне у вас есть поле search-are, а не search_area, поэтому измените его имя в шаблоне правильно.
@Vignesh Вам нужно изменить его на sesrch-area во входном теге html, чтобы правильные искомые элементы набора запросов попадали в шаблон.
Исправлена ошибка, но искомый элемент не отображается