(I have a custom user model)
I do not understand why this is happening. These are my expected urls:
python manage.py show_urls
/api/v1/ rest_framework.routers.APIRootView api-root
/api/v1/\.<format>/ rest_framework.routers.APIRootView api-root
/api/v1/users/ users.views.UserCreateViewSet user-list
/api/v1/users/<pk>/ users.views.UserViewSet user-detail
/api/v1/users/<pk>\.<format>/ users.views.UserViewSet user-detail
/api/v1/users\.<format>/ users.views.UserCreateViewSet user-list
As soon as I include in my urls.py
a view based on DynamicModelViewSet
:
from dynamic_rest.viewsets import DynamicModelViewSet
class AggregateViewSet(DynamicModelViewSet):
pass
My user-list
urls are duplicated:
ยป python manage.py show_urls
/api/v1/ rest_framework.routers.APIRootView api-root
/api/v1/\.<format>/ rest_framework.routers.APIRootView api-root
/api/v1/users/ users.views.UserCreateViewSet user-list
/api/v1/users/ users.views.UserViewSet user-list
/api/v1/users/<pk>/ users.views.UserViewSet user-detail
/api/v1/users/<pk>\.<format>/ users.views.UserViewSet user-detail
/api/v1/users\.<format>/ users.views.UserCreateViewSet user-list
/api/v1/users\.<format>/ users.views.UserViewSet user-list
This is my (simplified) urls.py
:
from django.urls include
from rest_framework.routers import DefaultRouter
# from consumption.views import AggregateViewSet
router = DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'users', UserCreateViewSet)
urlpatterns = [
path('api/v1/', include(router.urls)),
]
Activating that from consumption.views import AggregateViewSet
statement makes the problem appear. It does not even need to be registered to the router: just importing the view is breaking the urls.
Why is dynamic-rest
mangling the urls just by being imported?