rename already_registered function; return True/False

This commit is contained in:
David Graves 2022-11-30 21:22:50 -06:00
parent 2cbe3c61be
commit badd1c1a6f

View File

@ -53,25 +53,22 @@ class BaseRouter:
if basename is None: if basename is None:
basename = self.get_default_basename(viewset) basename = self.get_default_basename(viewset)
if not self.basename_already_registered(basename): if self.is_already_registered(basename):
msg = (f'Route with basename "{basename}" is already registered. '
f'Please provide a unique basename for viewset "{viewset}"')
raise ImproperlyConfigured(msg)
self.registry.append((prefix, viewset, basename)) self.registry.append((prefix, viewset, basename))
# invalidate the urls cache # invalidate the urls cache
if hasattr(self, '_urls'): if hasattr(self, '_urls'):
del self._urls del self._urls
def basename_already_registered(self, new_basename): def is_already_registered(self, new_basename):
""" """
If `basename` is already registered, raise an exception Check if `basename` is already registered
""" """
for route in self.registry: return any(basename == new_basename for _prefix, _viewset, basename in self.registry)
prefix, viewset, basename = route
if new_basename == basename:
msg = (f'Route with basename "{new_basename}" is already registered. '
f'Please provide a unique basename for viewset "{viewset}"')
raise ImproperlyConfigured(msg)
return False
def get_default_basename(self, viewset): def get_default_basename(self, viewset):
""" """