diff --git a/planetstack/apigen/api.template.py b/planetstack/apigen/api.template.py
index 7051c13..eb3074d 100644
--- a/planetstack/apigen/api.template.py
+++ b/planetstack/apigen/api.template.py
@@ -10,6 +10,7 @@
 from rest_framework import filters
 from django.conf.urls import patterns, url
 from rest_framework.exceptions import PermissionDenied as RestFrameworkPermissionDenied
+from django.core.exceptions import PermissionDenied as DjangoPermissionDenied
 
 if hasattr(serializers, "ReadOnlyField"):
     # rest_framework 3.x
@@ -202,15 +203,35 @@
     def destroy(self, request, *args, **kwargs):
         obj = self.get_object()
         if obj.can_update(request.user):
-            return super(generics.RetrieveUpdateDestroyAPIView, self).destroy(request, *args, **kwargs)
+            return super(PlanetStackRetrieveUpdateDestroyAPIView, self).destroy(request, *args, **kwargs)
         else:
             return Response(status=status.HTTP_400_BAD_REQUEST)
 
+    def handle_exception(self, exc):
+        # REST API drops the string attached to Django's PermissionDenied
+        # exception, and replaces it with a generic "Permission Denied"
+        if isinstance(exc, DjangoPermissionDenied):
+            response=Response({'detail': str(exc)}, status=status.HTTP_403_FORBIDDEN)
+            response.exception=True
+            return response
+        else:
+            return super(PlanetStackRetrieveUpdateDestroyAPIView, self).handle_exception(exc)
+
+class PlanetStackListCreateAPIView(generics.ListCreateAPIView):
+    def handle_exception(self, exc):
+        # REST API drops the string attached to Django's PermissionDenied
+        # exception, and replaces it with a generic "Permission Denied"
+        if isinstance(exc, DjangoPermissionDenied):
+            response=Response({'detail': str(exc)}, status=status.HTTP_403_FORBIDDEN)
+            response.exception=True
+            return response
+        else:
+            return super(PlanetStackListCreateAPIView, self).handle_exception(exc)
 
 # Based on core/views/*.py
 {% for object in generator.all %}
 
-class {{ object.camel }}List(generics.ListCreateAPIView):
+class {{ object.camel }}List(PlanetStackListCreateAPIView):
     queryset = {{ object.camel }}.objects.select_related().all()
     serializer_class = {{ object.camel }}Serializer
     id_serializer_class = {{ object.camel }}IdSerializer
diff --git a/planetstack/genapi.py b/planetstack/genapi.py
index b69ddd0..7437429 100644
--- a/planetstack/genapi.py
+++ b/planetstack/genapi.py
@@ -10,6 +10,7 @@
 from rest_framework import filters
 from django.conf.urls import patterns, url
 from rest_framework.exceptions import PermissionDenied as RestFrameworkPermissionDenied
+from django.core.exceptions import PermissionDenied as DjangoPermissionDenied
 
 if hasattr(serializers, "ReadOnlyField"):
     # rest_framework 3.x
@@ -2589,15 +2590,35 @@
     def destroy(self, request, *args, **kwargs):
         obj = self.get_object()
         if obj.can_update(request.user):
-            return super(generics.RetrieveUpdateDestroyAPIView, self).destroy(request, *args, **kwargs)
+            return super(PlanetStackRetrieveUpdateDestroyAPIView, self).destroy(request, *args, **kwargs)
         else:
             return Response(status=status.HTTP_400_BAD_REQUEST)
 
+    def handle_exception(self, exc):
+        # REST API drops the string attached to Django's PermissionDenied
+        # exception, and replaces it with a generic "Permission Denied"
+        if isinstance(exc, DjangoPermissionDenied):
+            response=Response({'detail': str(exc)}, status=status.HTTP_403_FORBIDDEN)
+            response.exception=True
+            return response
+        else:
+            return super(PlanetStackRetrieveUpdateDestroyAPIView, self).handle_exception(exc)
+
+class PlanetStackListCreateAPIView(generics.ListCreateAPIView):
+    def handle_exception(self, exc):
+        # REST API drops the string attached to Django's PermissionDenied
+        # exception, and replaces it with a generic "Permission Denied"
+        if isinstance(exc, DjangoPermissionDenied):
+            response=Response({'detail': str(exc)}, status=status.HTTP_403_FORBIDDEN)
+            response.exception=True
+            return response
+        else:
+            return super(PlanetStackListCreateAPIView, self).handle_exception(exc)
 
 # Based on core/views/*.py
 
 
-class ServiceAttributeList(generics.ListCreateAPIView):
+class ServiceAttributeList(PlanetStackListCreateAPIView):
     queryset = ServiceAttribute.objects.select_related().all()
     serializer_class = ServiceAttributeSerializer
     id_serializer_class = ServiceAttributeIdSerializer
@@ -2664,7 +2685,7 @@
 
 
 
-class ControllerImagesList(generics.ListCreateAPIView):
+class ControllerImagesList(PlanetStackListCreateAPIView):
     queryset = ControllerImages.objects.select_related().all()
     serializer_class = ControllerImagesSerializer
     id_serializer_class = ControllerImagesIdSerializer
@@ -2731,7 +2752,7 @@
 
 
 
-class ControllerSitePrivilegeList(generics.ListCreateAPIView):
+class ControllerSitePrivilegeList(PlanetStackListCreateAPIView):
     queryset = ControllerSitePrivilege.objects.select_related().all()
     serializer_class = ControllerSitePrivilegeSerializer
     id_serializer_class = ControllerSitePrivilegeIdSerializer
@@ -2798,7 +2819,7 @@
 
 
 
-class ImageList(generics.ListCreateAPIView):
+class ImageList(PlanetStackListCreateAPIView):
     queryset = Image.objects.select_related().all()
     serializer_class = ImageSerializer
     id_serializer_class = ImageIdSerializer
@@ -2865,7 +2886,7 @@
 
 
 
-class NetworkParameterList(generics.ListCreateAPIView):
+class NetworkParameterList(PlanetStackListCreateAPIView):
     queryset = NetworkParameter.objects.select_related().all()
     serializer_class = NetworkParameterSerializer
     id_serializer_class = NetworkParameterIdSerializer
@@ -2932,7 +2953,7 @@
 
 
 
-class SiteList(generics.ListCreateAPIView):
+class SiteList(PlanetStackListCreateAPIView):
     queryset = Site.objects.select_related().all()
     serializer_class = SiteSerializer
     id_serializer_class = SiteIdSerializer
@@ -2999,7 +3020,7 @@
 
 
 
-class SliceRoleList(generics.ListCreateAPIView):
+class SliceRoleList(PlanetStackListCreateAPIView):
     queryset = SliceRole.objects.select_related().all()
     serializer_class = SliceRoleSerializer
     id_serializer_class = SliceRoleIdSerializer
@@ -3066,7 +3087,7 @@
 
 
 
-class TagList(generics.ListCreateAPIView):
+class TagList(PlanetStackListCreateAPIView):
     queryset = Tag.objects.select_related().all()
     serializer_class = TagSerializer
     id_serializer_class = TagIdSerializer
@@ -3133,7 +3154,7 @@
 
 
 
-class InvoiceList(generics.ListCreateAPIView):
+class InvoiceList(PlanetStackListCreateAPIView):
     queryset = Invoice.objects.select_related().all()
     serializer_class = InvoiceSerializer
     id_serializer_class = InvoiceIdSerializer
@@ -3200,7 +3221,7 @@
 
 
 
-class SlicePrivilegeList(generics.ListCreateAPIView):
+class SlicePrivilegeList(PlanetStackListCreateAPIView):
     queryset = SlicePrivilege.objects.select_related().all()
     serializer_class = SlicePrivilegeSerializer
     id_serializer_class = SlicePrivilegeIdSerializer
@@ -3267,7 +3288,7 @@
 
 
 
-class PlanetStackRoleList(generics.ListCreateAPIView):
+class PlanetStackRoleList(PlanetStackListCreateAPIView):
     queryset = PlanetStackRole.objects.select_related().all()
     serializer_class = PlanetStackRoleSerializer
     id_serializer_class = PlanetStackRoleIdSerializer
@@ -3334,7 +3355,7 @@
 
 
 
-class NetworkSliverList(generics.ListCreateAPIView):
+class NetworkSliverList(PlanetStackListCreateAPIView):
     queryset = NetworkSliver.objects.select_related().all()
     serializer_class = NetworkSliverSerializer
     id_serializer_class = NetworkSliverIdSerializer
@@ -3401,7 +3422,7 @@
 
 
 
-class FlavorList(generics.ListCreateAPIView):
+class FlavorList(PlanetStackListCreateAPIView):
     queryset = Flavor.objects.select_related().all()
     serializer_class = FlavorSerializer
     id_serializer_class = FlavorIdSerializer
@@ -3468,7 +3489,7 @@
 
 
 
-class ControllerSiteList(generics.ListCreateAPIView):
+class ControllerSiteList(PlanetStackListCreateAPIView):
     queryset = ControllerSite.objects.select_related().all()
     serializer_class = ControllerSiteSerializer
     id_serializer_class = ControllerSiteIdSerializer
@@ -3535,7 +3556,7 @@
 
 
 
-class ProjectList(generics.ListCreateAPIView):
+class ProjectList(PlanetStackListCreateAPIView):
     queryset = Project.objects.select_related().all()
     serializer_class = ProjectSerializer
     id_serializer_class = ProjectIdSerializer
@@ -3602,7 +3623,7 @@
 
 
 
-class SliceList(generics.ListCreateAPIView):
+class SliceList(PlanetStackListCreateAPIView):
     queryset = Slice.objects.select_related().all()
     serializer_class = SliceSerializer
     id_serializer_class = SliceIdSerializer
@@ -3669,7 +3690,7 @@
 
 
 
-class NetworkList(generics.ListCreateAPIView):
+class NetworkList(PlanetStackListCreateAPIView):
     queryset = Network.objects.select_related().all()
     serializer_class = NetworkSerializer
     id_serializer_class = NetworkIdSerializer
@@ -3736,7 +3757,7 @@
 
 
 
-class ServiceList(generics.ListCreateAPIView):
+class ServiceList(PlanetStackListCreateAPIView):
     queryset = Service.objects.select_related().all()
     serializer_class = ServiceSerializer
     id_serializer_class = ServiceIdSerializer
@@ -3803,7 +3824,7 @@
 
 
 
-class ServiceClassList(generics.ListCreateAPIView):
+class ServiceClassList(PlanetStackListCreateAPIView):
     queryset = ServiceClass.objects.select_related().all()
     serializer_class = ServiceClassSerializer
     id_serializer_class = ServiceClassIdSerializer
@@ -3870,7 +3891,7 @@
 
 
 
-class PlanetStackList(generics.ListCreateAPIView):
+class PlanetStackList(PlanetStackListCreateAPIView):
     queryset = PlanetStack.objects.select_related().all()
     serializer_class = PlanetStackSerializer
     id_serializer_class = PlanetStackIdSerializer
@@ -3937,7 +3958,7 @@
 
 
 
-class ChargeList(generics.ListCreateAPIView):
+class ChargeList(PlanetStackListCreateAPIView):
     queryset = Charge.objects.select_related().all()
     serializer_class = ChargeSerializer
     id_serializer_class = ChargeIdSerializer
@@ -4004,7 +4025,7 @@
 
 
 
-class RoleList(generics.ListCreateAPIView):
+class RoleList(PlanetStackListCreateAPIView):
     queryset = Role.objects.select_related().all()
     serializer_class = RoleSerializer
     id_serializer_class = RoleIdSerializer
@@ -4071,7 +4092,7 @@
 
 
 
-class UsableObjectList(generics.ListCreateAPIView):
+class UsableObjectList(PlanetStackListCreateAPIView):
     queryset = UsableObject.objects.select_related().all()
     serializer_class = UsableObjectSerializer
     id_serializer_class = UsableObjectIdSerializer
@@ -4138,7 +4159,7 @@
 
 
 
-class SiteRoleList(generics.ListCreateAPIView):
+class SiteRoleList(PlanetStackListCreateAPIView):
     queryset = SiteRole.objects.select_related().all()
     serializer_class = SiteRoleSerializer
     id_serializer_class = SiteRoleIdSerializer
@@ -4205,7 +4226,7 @@
 
 
 
-class SliceCredentialList(generics.ListCreateAPIView):
+class SliceCredentialList(PlanetStackListCreateAPIView):
     queryset = SliceCredential.objects.select_related().all()
     serializer_class = SliceCredentialSerializer
     id_serializer_class = SliceCredentialIdSerializer
@@ -4272,7 +4293,7 @@
 
 
 
-class SliverList(generics.ListCreateAPIView):
+class SliverList(PlanetStackListCreateAPIView):
     queryset = Sliver.objects.select_related().all()
     serializer_class = SliverSerializer
     id_serializer_class = SliverIdSerializer
@@ -4339,7 +4360,7 @@
 
 
 
-class NodeList(generics.ListCreateAPIView):
+class NodeList(PlanetStackListCreateAPIView):
     queryset = Node.objects.select_related().all()
     serializer_class = NodeSerializer
     id_serializer_class = NodeIdSerializer
@@ -4406,7 +4427,7 @@
 
 
 
-class DashboardViewList(generics.ListCreateAPIView):
+class DashboardViewList(PlanetStackListCreateAPIView):
     queryset = DashboardView.objects.select_related().all()
     serializer_class = DashboardViewSerializer
     id_serializer_class = DashboardViewIdSerializer
@@ -4473,7 +4494,7 @@
 
 
 
-class ControllerNetworkList(generics.ListCreateAPIView):
+class ControllerNetworkList(PlanetStackListCreateAPIView):
     queryset = ControllerNetwork.objects.select_related().all()
     serializer_class = ControllerNetworkSerializer
     id_serializer_class = ControllerNetworkIdSerializer
@@ -4540,7 +4561,7 @@
 
 
 
-class ImageDeploymentsList(generics.ListCreateAPIView):
+class ImageDeploymentsList(PlanetStackListCreateAPIView):
     queryset = ImageDeployments.objects.select_related().all()
     serializer_class = ImageDeploymentsSerializer
     id_serializer_class = ImageDeploymentsIdSerializer
@@ -4607,7 +4628,7 @@
 
 
 
-class ControllerUserList(generics.ListCreateAPIView):
+class ControllerUserList(PlanetStackListCreateAPIView):
     queryset = ControllerUser.objects.select_related().all()
     serializer_class = ControllerUserSerializer
     id_serializer_class = ControllerUserIdSerializer
@@ -4674,7 +4695,7 @@
 
 
 
-class ReservedResourceList(generics.ListCreateAPIView):
+class ReservedResourceList(PlanetStackListCreateAPIView):
     queryset = ReservedResource.objects.select_related().all()
     serializer_class = ReservedResourceSerializer
     id_serializer_class = ReservedResourceIdSerializer
@@ -4741,7 +4762,7 @@
 
 
 
-class PaymentList(generics.ListCreateAPIView):
+class PaymentList(PlanetStackListCreateAPIView):
     queryset = Payment.objects.select_related().all()
     serializer_class = PaymentSerializer
     id_serializer_class = PaymentIdSerializer
@@ -4808,7 +4829,7 @@
 
 
 
-class NetworkSliceList(generics.ListCreateAPIView):
+class NetworkSliceList(PlanetStackListCreateAPIView):
     queryset = NetworkSlice.objects.select_related().all()
     serializer_class = NetworkSliceSerializer
     id_serializer_class = NetworkSliceIdSerializer
@@ -4875,7 +4896,7 @@
 
 
 
-class UserDashboardViewList(generics.ListCreateAPIView):
+class UserDashboardViewList(PlanetStackListCreateAPIView):
     queryset = UserDashboardView.objects.select_related().all()
     serializer_class = UserDashboardViewSerializer
     id_serializer_class = UserDashboardViewIdSerializer
@@ -4942,7 +4963,7 @@
 
 
 
-class ControllerList(generics.ListCreateAPIView):
+class ControllerList(PlanetStackListCreateAPIView):
     queryset = Controller.objects.select_related().all()
     serializer_class = ControllerSerializer
     id_serializer_class = ControllerIdSerializer
@@ -5009,7 +5030,7 @@
 
 
 
-class PlanetStackPrivilegeList(generics.ListCreateAPIView):
+class PlanetStackPrivilegeList(PlanetStackListCreateAPIView):
     queryset = PlanetStackPrivilege.objects.select_related().all()
     serializer_class = PlanetStackPrivilegeSerializer
     id_serializer_class = PlanetStackPrivilegeIdSerializer
@@ -5076,7 +5097,7 @@
 
 
 
-class UserList(generics.ListCreateAPIView):
+class UserList(PlanetStackListCreateAPIView):
     queryset = User.objects.select_related().all()
     serializer_class = UserSerializer
     id_serializer_class = UserIdSerializer
@@ -5143,7 +5164,7 @@
 
 
 
-class DeploymentList(generics.ListCreateAPIView):
+class DeploymentList(PlanetStackListCreateAPIView):
     queryset = Deployment.objects.select_related().all()
     serializer_class = DeploymentSerializer
     id_serializer_class = DeploymentIdSerializer
@@ -5210,7 +5231,7 @@
 
 
 
-class ReservationList(generics.ListCreateAPIView):
+class ReservationList(PlanetStackListCreateAPIView):
     queryset = Reservation.objects.select_related().all()
     serializer_class = ReservationSerializer
     id_serializer_class = ReservationIdSerializer
@@ -5277,7 +5298,7 @@
 
 
 
-class SitePrivilegeList(generics.ListCreateAPIView):
+class SitePrivilegeList(PlanetStackListCreateAPIView):
     queryset = SitePrivilege.objects.select_related().all()
     serializer_class = SitePrivilegeSerializer
     id_serializer_class = SitePrivilegeIdSerializer
@@ -5344,7 +5365,7 @@
 
 
 
-class ControllerSliceList(generics.ListCreateAPIView):
+class ControllerSliceList(PlanetStackListCreateAPIView):
     queryset = ControllerSlice.objects.select_related().all()
     serializer_class = ControllerSliceSerializer
     id_serializer_class = ControllerSliceIdSerializer
@@ -5411,7 +5432,7 @@
 
 
 
-class ControllerDashboardViewList(generics.ListCreateAPIView):
+class ControllerDashboardViewList(PlanetStackListCreateAPIView):
     queryset = ControllerDashboardView.objects.select_related().all()
     serializer_class = ControllerDashboardViewSerializer
     id_serializer_class = ControllerDashboardViewIdSerializer
@@ -5478,7 +5499,7 @@
 
 
 
-class AccountList(generics.ListCreateAPIView):
+class AccountList(PlanetStackListCreateAPIView):
     queryset = Account.objects.select_related().all()
     serializer_class = AccountSerializer
     id_serializer_class = AccountIdSerializer
@@ -5545,7 +5566,7 @@
 
 
 
-class ControllerRoleList(generics.ListCreateAPIView):
+class ControllerRoleList(PlanetStackListCreateAPIView):
     queryset = ControllerRole.objects.select_related().all()
     serializer_class = ControllerRoleSerializer
     id_serializer_class = ControllerRoleIdSerializer
@@ -5612,7 +5633,7 @@
 
 
 
-class NetworkParameterTypeList(generics.ListCreateAPIView):
+class NetworkParameterTypeList(PlanetStackListCreateAPIView):
     queryset = NetworkParameterType.objects.select_related().all()
     serializer_class = NetworkParameterTypeSerializer
     id_serializer_class = NetworkParameterTypeIdSerializer
@@ -5679,7 +5700,7 @@
 
 
 
-class SiteCredentialList(generics.ListCreateAPIView):
+class SiteCredentialList(PlanetStackListCreateAPIView):
     queryset = SiteCredential.objects.select_related().all()
     serializer_class = SiteCredentialSerializer
     id_serializer_class = SiteCredentialIdSerializer
@@ -5746,7 +5767,7 @@
 
 
 
-class DeploymentPrivilegeList(generics.ListCreateAPIView):
+class DeploymentPrivilegeList(PlanetStackListCreateAPIView):
     queryset = DeploymentPrivilege.objects.select_related().all()
     serializer_class = DeploymentPrivilegeSerializer
     id_serializer_class = DeploymentPrivilegeIdSerializer
@@ -5813,7 +5834,7 @@
 
 
 
-class ControllerSlicePrivilegeList(generics.ListCreateAPIView):
+class ControllerSlicePrivilegeList(PlanetStackListCreateAPIView):
     queryset = ControllerSlicePrivilege.objects.select_related().all()
     serializer_class = ControllerSlicePrivilegeSerializer
     id_serializer_class = ControllerSlicePrivilegeIdSerializer
@@ -5880,7 +5901,7 @@
 
 
 
-class SiteDeploymentList(generics.ListCreateAPIView):
+class SiteDeploymentList(PlanetStackListCreateAPIView):
     queryset = SiteDeployment.objects.select_related().all()
     serializer_class = SiteDeploymentSerializer
     id_serializer_class = SiteDeploymentIdSerializer
@@ -5947,7 +5968,7 @@
 
 
 
-class DeploymentRoleList(generics.ListCreateAPIView):
+class DeploymentRoleList(PlanetStackListCreateAPIView):
     queryset = DeploymentRole.objects.select_related().all()
     serializer_class = DeploymentRoleSerializer
     id_serializer_class = DeploymentRoleIdSerializer
@@ -6014,7 +6035,7 @@
 
 
 
-class UserCredentialList(generics.ListCreateAPIView):
+class UserCredentialList(PlanetStackListCreateAPIView):
     queryset = UserCredential.objects.select_related().all()
     serializer_class = UserCredentialSerializer
     id_serializer_class = UserCredentialIdSerializer
@@ -6081,7 +6102,7 @@
 
 
 
-class SliceTagList(generics.ListCreateAPIView):
+class SliceTagList(PlanetStackListCreateAPIView):
     queryset = SliceTag.objects.select_related().all()
     serializer_class = SliceTagSerializer
     id_serializer_class = SliceTagIdSerializer
@@ -6148,7 +6169,7 @@
 
 
 
-class NetworkTemplateList(generics.ListCreateAPIView):
+class NetworkTemplateList(PlanetStackListCreateAPIView):
     queryset = NetworkTemplate.objects.select_related().all()
     serializer_class = NetworkTemplateSerializer
     id_serializer_class = NetworkTemplateIdSerializer
@@ -6215,7 +6236,7 @@
 
 
 
-class RouterList(generics.ListCreateAPIView):
+class RouterList(PlanetStackListCreateAPIView):
     queryset = Router.objects.select_related().all()
     serializer_class = RouterSerializer
     id_serializer_class = RouterIdSerializer
@@ -6282,7 +6303,7 @@
 
 
 
-class ServiceResourceList(generics.ListCreateAPIView):
+class ServiceResourceList(PlanetStackListCreateAPIView):
     queryset = ServiceResource.objects.select_related().all()
     serializer_class = ServiceResourceSerializer
     id_serializer_class = ServiceResourceIdSerializer
