On 20/11/16 03:51, Stephen Finucane wrote:
+class ProjectMixin(object):
+
     permission_classes = (PatchworkPermission,)
     serializer_class = ProjectSerializer

-    def _handle_linkname(self, pk):
-        '''Make it easy for users to list by project-id or linkname'''
-        qs = self.get_queryset()
-        try:
-            qs.get(id=pk)
-        except (self.serializer_class.Meta.model.DoesNotExist, ValueError):
-            # probably a non-numeric value which means we are going by linkname
-            self.kwargs = {'linkname': pk}  # try and lookup by linkname
-            self.lookup_field = 'linkname'
-
-    def retrieve(self, request, pk=None):
-        self._handle_linkname(pk)
-        return super(ProjectViewSet, self).retrieve(request, pk)
-
-    def partial_update(self, request, pk=None):
-        self._handle_linkname(pk)
-        return super(ProjectViewSet, self).partial_update(request, pk)
+    def get_queryset(self):
+        query = Project.objects.all()
+
+        if 'pk' in self.kwargs:
+            try:
+                query.get(id=int(self.kwargs['pk']))
+            except (ValueError, Project.DoesNotExist):
+                query.get(linkname=self.kwargs['pk'])
+

This should be:

+        if 'pk' in self.kwargs:
+            try:
+                query = query.filter(id=int(self.kwargs['pk']))
+            except (ValueError, Project.DoesNotExist):
+                query = query.filter(linkname=self.kwargs['pk'])

--
Andrew Donnellan              OzLabs, ADL Canberra
[email protected]  IBM Australia Limited

_______________________________________________
Patchwork mailing list
[email protected]
https://lists.ozlabs.org/listinfo/patchwork

Reply via email to