src/p4l/views.py
changeset 7 02008d61c3c8
parent 5 62e97cd13730
child 8 d10cdb768a03
--- a/src/p4l/views.py	Wed Aug 28 18:45:41 2013 +0200
+++ b/src/p4l/views.py	Thu Aug 29 15:42:00 2013 +0200
@@ -6,15 +6,17 @@
 '''
 
 from django.conf import settings
-from django.core.paginator import Paginator, InvalidPage, EmptyPage
-from django.db.models import Count
+#from django.core.paginator import Paginator, InvalidPage, EmptyPage
+#from django.db.models import Count
 #from django.http.response import HttpResponse, HttpResponseForbidden
-from django.views.generic import ListView#, DetailView, View
+from django.shortcuts import get_object_or_404
+from django.views.generic import ListView, DetailView#, View
 #from django.views.generic.list import MultipleObjectMixin
 from .models import Record
 from .forms import RecordFilterForm
 import logging
 
+
 logger = logging.getLogger(__name__)
 
 class RecordListView(ListView):
@@ -42,3 +44,18 @@
             return filter_form.get_filter_qs(qs)
         else:
             return qs
+
+
+class RecordDetailView(DetailView):
+    
+    model = Record
+    template_name = "p4l/p4l_record_view.html"
+    slug_field = "uri" # Even if it is useless because we override get_objet
+    
+    def get_object(self, queryset=None):
+        if "uri" not in self.request.GET:
+            raise AttributeError(u"Record view must be called uri GET parameter")
+        
+        return get_object_or_404(Record.objects.select_related("language").prefetch_related('titles'), uri=self.request.GET["uri"])
+
+