Skip to content

Commit 0c98204

Browse files
committed
Added route checking before add to route to prevent duplication
1 parent dd7e393 commit 0c98204

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

rest_framework_extensions/routers.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,20 +80,27 @@ def get_routes(self, viewset):
8080
if self.is_dynamic_route(route):
8181
# Dynamic routes (@list_route or @detail_route decorator)
8282
if self.is_list_dynamic_route(route):
83-
ret += self.get_dynamic_routes_instances(
83+
temporary_route_list = self.get_dynamic_routes_instances(
8484
viewset,
8585
route,
8686
self._filter_by_list_dynamic_routes(dynamic_routes)
8787
)
88+
for temporary_route in temporary_route_list:
89+
if temporary_route not in ret:
90+
ret.append(temporary_route)
8891
else:
89-
ret += self.get_dynamic_routes_instances(
92+
temporary_route_list = self.get_dynamic_routes_instances(
9093
viewset,
9194
route,
9295
self._filter_by_detail_dynamic_routes(dynamic_routes)
9396
)
97+
for temporary_route in temporary_route_list:
98+
if temporary_route not in ret:
99+
ret.append(temporary_route)
94100
else:
95101
# Standard route
96-
ret.append(route)
102+
if route not in ret:
103+
ret.append(route)
97104

98105
return ret
99106

0 commit comments

Comments
 (0)