用于多个应用程序的Django Rest Framework URL映射

时间:2017-08-17 17:08:53

标签: django django-rest-framework

我有一个名为main的django-rest项目,在其下我创建了一个名为users的应用程序。所以,我的项目有文件: -

  

主/主/ urls.py

  

主/用户/ urls.py

在users / urls.py中我有

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)

并在main / main / urls.py中有

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),
]

但是,我一直收到错误NameError: name 'users' is not defined。当我有多个应用时,设置网址的正确方法是什么?我想为每个独立于项目的应用程序提供urls.py文件。在根urls.py中将包括路由到不同的应用程序。

1 个答案:

答案 0 :(得分:3)

您导入的网址不是用户,可以尝试

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

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

但更好:

from django.conf.urls import url, include

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

更多详情including-other-urlconfs