{% block file-list-info %}
+  <form>
+    <div class="input-group">
+      <input class="form-control" name="s" value="{{ request.GET.s }}">
+      <div class="input-group-append">
+       <button class="btn btn-primary">Szukaj</button>
+      </div>
+    </div>
+  </form>
 {% endblock %}
 
 {% block file-list-wrapper %}
 
 
 from archive import settings
 from django.contrib.auth.decorators import permission_required
+from django.contrib.postgres.search import SearchVector
 from django.urls import reverse
 from django.db.models import Q, Max
 from django.http import Http404, HttpResponse
 
 
 class AudiobookList(ListView):
-    queryset = models.Audiobook.objects.all()
+    def get_queryset(self):
+        qs = models.Audiobook.objects.all()
+        if 's' in self.request.GET:
+            qs = qs.annotate(s=SearchVector('title', 'slug')).filter(s=self.request.GET['s'])
+        return qs
 
 
 @permission_required('archive.change_audiobook')
 
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'django.contrib.admin',
+    'django.contrib.postgres',
     # Uncomment the next line to enable admin documentation:
     # 'django.contrib.admindocs',
     'bootstrap4',