from itertools import chain from django.views.generic import ListView from photos.models import LuxImage, LuxVideo from django.shortcuts import render_to_response from django.shortcuts import render from django.template import RequestContext class PaginatedListView(ListView): """ handles my own pagination system """ context_object_name = 'object_list' def dispatch(self, request, *args, **kwargs): path = request.path.split('/')[1:-1] if path[-1] == self.kwargs['page']: path = "/".join(t for t in path[:-1]) request.page_url = "/" + path + '/%d/' else: request.page_url = request.path + '%d/' print(request.page_url) request.page = int(self.kwargs['page']) return super(PaginatedListView, self).dispatch(request, *args, **kwargs) def insert_image(request): """ The view that handles the admin insert image/video feature """ images = LuxImage.objects.all()[:50] videos = LuxVideo.objects.all()[:10] object_list = sorted( chain(images, videos), key=lambda instance: instance.pub_date, reverse=True ) return render(request, 'admin/insert_images.html', {'object_list': object_list, 'textarea_id': request.GET['textarea']}) from taggit.models import Tag from dal import autocomplete class TagAutocomplete(autocomplete.Select2QuerySetView): def get_queryset(self): # Don't forget to filter out results depending on the visitor ! if not self.request.user.is_authenticated(): return Tag.objects.none() qs = Tag.objects.all() if self.q: qs = qs.filter(name__istartswith=self.q) return qs