на моем Django веб-сайте у меня есть страница пользователя, где перечислены все элементы, добавленные пользователем в базу данных. Есть форма поиска для пользователя, чтобы искать в своих собственных элементах. Проблема в том, что форма поиска не работает. Я немного озадачен тем, как фильтровать базу данных, потому что сначала я отфильтровал все элементы, чтобы показать только те, которые были добавлены зарегистрированным пользователем, а затем я должен отфильтровать их по вводу пользователя. Надеюсь, что кто-то может мне помочь, спасибо!
Я посмотрел "def look ()", но он не работает
Views.py
class userListView(ListView):
model = Info
template_name = 'search/user.html'
paginate_by = 10
def get_queryset(self):
qs = super().get_queryset()
qt = qs.filter(utente=self.request.user)
return qt
def look(self, request, *args, **kwargs):
print('FORM POSTED WITH {}'.format(request.POST['cerca']))
srch = request.POST.get('cerca')
if srch:
sr = Info.objects.filter(srch = Subquery(qt))
if sr:
return render (self.request, 'search/user.html', {'sr':sr})
else:
return render(self.request, 'search/user.html')
else:
return render(self.request, 'search/user.html')
шаблон пользователя html
<div class="add">
<div class="posted">
<div class="head">
<h2> YOUR LIST </h2>
<div class="form">
<form method="post" action="{% url 'user' %}">
{%csrf_token%}
<input type="text" name="cerca" class= "form-control" placeholder=" Type Album or Band Name...">
<!-- <button type="submit" name="submit">Search</button> -->
</form>
</div>
</div>
<!-- Inserire il database dell'utente registrato -->
{% if object_list %}
{% for o in object_list %}
<div class="container_band">
<div class=album_band>
<!-- insert an image -->
{%if o.cover%}
<img src= "{{o.cover.url}}" width="100%">
{%endif%}
</div>
<div class="info_band">
<!-- insert table info -->
<table>
<tr><th><h3>{{o.band}}</h3></th></tr>
<tr><td> Anno: </td><td> {{o.anno}} </td></tr>
<tr><td> Disco: </td><td> {{o.disco}} </td></tr>
<tr><td> Etichetta: </td><td> {{o.etichetta_d}} </td></tr>
<tr><td> Matrice: </td><td> {{o.matrice}} </td></tr>
</table>
</div>
шаблон:
<a href="{%url 'searches'%}" >Band: {{ request.POST.srh }}</a><br/>
<a href="{%url 'searches'%}" >Album: {{ request.POST.srh }}</a>