{% 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',