def get_documents(self): """ Return the documents accordingly to specific search field """ documents = Document.objects.all() if self.request.user.is_authenticated(): permited_docs = get_objects_for_user( self.request.user, 'documents.access_document', Document, use_groups=True).values_list('id', flat=True) documents = \ documents.filter(Q(id__in=permited_docs) | Q(public=True)) else: documents = documents.filter(public=True) form = SearchDocumentForm(self.request.GET) if form.is_valid(): opts = {} for key in form.cleaned_data: if form.cleaned_data[key] != '': opts[key + '__icontains'] = form.cleaned_data[key] self.vs_query += " " + key + ":" + form.cleaned_data[key] documents = documents.filter(**opts) # references = self.get_references() # if references: # documents = documents.filter(reference__in=references) return documents