Просмотр исходного кода

Fixes #1522: Removed object create/edit forms from the browsable API

Jeremy Stretch 8 лет назад
Родитель
Сommit
a52a871a94
2 измененных файлов с 17 добавлено и 0 удалено
  1. 4 0
      netbox/netbox/settings.py
  2. 13 0
      netbox/utilities/api.py

+ 4 - 0
netbox/netbox/settings.py

@@ -234,6 +234,10 @@ REST_FRAMEWORK = {
     'DEFAULT_PERMISSION_CLASSES': (
         'utilities.api.TokenPermissions',
     ),
+    'DEFAULT_RENDERER_CLASSES': (
+        'rest_framework.renderers.JSONRenderer',
+        'utilities.api.FormlessBrowsableAPIRenderer',
+    ),
     'DEFAULT_VERSION': REST_FRAMEWORK_VERSION,
     'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning',
     'PAGE_SIZE': PAGINATE_COUNT,

+ 13 - 0
netbox/utilities/api.py

@@ -8,6 +8,7 @@ from rest_framework.compat import is_authenticated
 from rest_framework.exceptions import APIException
 from rest_framework.pagination import LimitOffsetPagination
 from rest_framework.permissions import BasePermission, DjangoModelPermissions, SAFE_METHODS
+from rest_framework.renderers import BrowsableAPIRenderer
 from rest_framework.serializers import Field, ModelSerializer, ValidationError
 from rest_framework.views import get_view_name as drf_get_view_name
 
@@ -206,6 +207,18 @@ class OptionalLimitOffsetPagination(LimitOffsetPagination):
         return self.default_limit
 
 
+#
+# Renderers
+#
+
+class FormlessBrowsableAPIRenderer(BrowsableAPIRenderer):
+    """
+    Override the built-in BrowsableAPIRenderer to disable HTML forms.
+    """
+    def show_form_for_method(self, *args, **kwargs):
+        return False
+
+
 #
 # Miscellaneous
 #