Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 522
kovac Avatar asked Sep 06 '25 03:09

kovac


1 Answers

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


Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!