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

Fixes #2442: Nullify "next" link in API when limit=0 is passed

Jeremy Stretch 7 лет назад
Родитель
Сommit
b4445dfdf8
2 измененных файлов с 18 добавлено и 2 удалено
  1. 1 0
      CHANGELOG.md
  2. 17 2
      netbox/netbox/api.py

+ 1 - 0
CHANGELOG.md

@@ -8,6 +8,7 @@ v2.4.5 (FUTURE)
 ## Bug Fixes
 ## Bug Fixes
 
 
 * [#2406](https://github.com/digitalocean/netbox/issues/2406) - Remove hard-coded limit of 1000 objects from API-populated form fields
 * [#2406](https://github.com/digitalocean/netbox/issues/2406) - Remove hard-coded limit of 1000 objects from API-populated form fields
+* [#2442](https://github.com/digitalocean/netbox/issues/2442) - Nullify "next" link in API when limit=0 is passed
 * [#2443](https://github.com/digitalocean/netbox/issues/2443) - Enforce JSON object format when creating config contexts
 * [#2443](https://github.com/digitalocean/netbox/issues/2443) - Enforce JSON object format when creating config contexts
 * [#2444](https://github.com/digitalocean/netbox/issues/2444) - Improve validation of interface MAC addresses
 * [#2444](https://github.com/digitalocean/netbox/issues/2444) - Improve validation of interface MAC addresses
 
 

+ 17 - 2
netbox/netbox/api.py

@@ -1,5 +1,6 @@
 from __future__ import unicode_literals
 from __future__ import unicode_literals
 
 
+from django.conf import settings
 from rest_framework import authentication, exceptions
 from rest_framework import authentication, exceptions
 from rest_framework.pagination import LimitOffsetPagination
 from rest_framework.pagination import LimitOffsetPagination
 from rest_framework.permissions import DjangoModelPermissions, SAFE_METHODS
 from rest_framework.permissions import DjangoModelPermissions, SAFE_METHODS
@@ -104,8 +105,6 @@ class OptionalLimitOffsetPagination(LimitOffsetPagination):
 
 
     def get_limit(self, request):
     def get_limit(self, request):
 
 
-        from django.conf import settings
-
         if self.limit_query_param:
         if self.limit_query_param:
             try:
             try:
                 limit = int(request.query_params[self.limit_query_param])
                 limit = int(request.query_params[self.limit_query_param])
@@ -123,6 +122,22 @@ class OptionalLimitOffsetPagination(LimitOffsetPagination):
 
 
         return self.default_limit
         return self.default_limit
 
 
+    def get_next_link(self):
+
+        # Pagination has been disabled
+        if not self.limit:
+            return None
+
+        return super(OptionalLimitOffsetPagination, self).get_next_link()
+
+    def get_previous_link(self):
+
+        # Pagination has been disabled
+        if not self.limit:
+            return None
+
+        return super(OptionalLimitOffsetPagination, self).get_previous_link()
+
 
 
 #
 #
 # Miscellaneous
 # Miscellaneous