Django restframework generic viewset не работает с представлениями get и get detail с одинаковыми url_path и url_name
Как я могу заставить два представления в DRF Generic viewset
использовать одинаковые url_paths и url_names при условии, что они используют одинаковые или разные методы, но разные details
значения, например, оба могут быть Get
методами, но будут иметь details=True
и details=False
на них
пример кода для большей наглядности;
@action(methods=["get"], detail=False, url_path="users", url_name="users")
def get_users(self, request):
# code here
@action(methods=["get"], detail=True, url_path="users", url_name="users")
def get_user(self, request, id):
# code here
get_users работают с этой конечной точкой -> {{base_url}}/{{prefix}}/users
get_user не работает с -> {{base_url}}/{{prefix}}/{{user-id}}/users
но если я изменю url_path и url_name на что-то другое, например -> single-user
тогда конечная точка для получения одного пользователя работает
-> {{base_url}}/{{prefix}}/{{user-id}}/single-user
Как я могу решить эту проблему, чтобы пользователи и user имели одинаковые url_name и url_path, потому что действия имеют детализацию как False
(users) и True
(user) для них обоих соответственно
NB; Also please not that this viewset does not make use any model
Я выяснил, что у DRF действительно есть маршрутизация дополнительных HTTP-методов для дополнительных действий, которые можно посмотреть здесь; https://www.django-rest-framework.org/api-guide/viewsets/#routing-additional-http-methods-for-extra-actions