kovac
kovac

Reputation: 5389

Django Rest Framework URL Mapping for multiple apps

I have a django-rest project called main and under it I have created an app called users. So, my project has the files :-

main/main/urls.py

and

main/users/urls.py

In users/urls.py I have

from django.conf.urls import url, include
from rest_framework import routers
from users import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)

and in the main/main/urls.py I have

from django.conf.urls import url
from django.contrib import admin

from users import urls

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^users/', users.urls),
]

However, I keep getting the error NameError: name 'users' is not defined. What is the correct way to set up urls when I have multiple apps? I would like to have a urls.py file for each app that is independent of the project. And in the root urls.py would include routing to different apps.

Upvotes: 4

Views: 2352

Answers (1)

user8060120
user8060120

Reputation:

You import url not user, can try it

from users import urls as users_url
#                        ^^^^^^^^

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^users/', users_url),
    #               ^^^^^^^
]

but better:

from django.conf.urls import url, include

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^users/', include('users.url')),
    #               ^^^^^^^
]

more details including-other-urlconfs

Upvotes: 6

Related Questions