From b4445dfdf8051f156f33abe0c332a118ebc14bfd Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 18 Sep 2018 13:59:50 -0400 Subject: [PATCH] Fixes #2442: Nullify "next" link in API when limit=0 is passed --- CHANGELOG.md | 1 + netbox/netbox/api.py | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8105e0006..1e3fa157c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ v2.4.5 (FUTURE) ## Bug Fixes * [#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 * [#2444](https://github.com/digitalocean/netbox/issues/2444) - Improve validation of interface MAC addresses diff --git a/netbox/netbox/api.py b/netbox/netbox/api.py index 28a0d7685..a0a9e9146 100644 --- a/netbox/netbox/api.py +++ b/netbox/netbox/api.py @@ -1,5 +1,6 @@ from __future__ import unicode_literals +from django.conf import settings from rest_framework import authentication, exceptions from rest_framework.pagination import LimitOffsetPagination from rest_framework.permissions import DjangoModelPermissions, SAFE_METHODS @@ -104,8 +105,6 @@ class OptionalLimitOffsetPagination(LimitOffsetPagination): def get_limit(self, request): - from django.conf import settings - if self.limit_query_param: try: limit = int(request.query_params[self.limit_query_param]) @@ -123,6 +122,22 @@ class OptionalLimitOffsetPagination(LimitOffsetPagination): 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