【问题标题】:Django Rest Framework URL Mapping for multiple apps多个应用程序的 Django Rest Framework URL 映射
【发布时间】:2018-01-26 05:31:36
【问题描述】:

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

main/main/urls.py

main/users/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 中将包含路由到不同的应用程序。

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    你导入url不是用户,可以试试

    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

    【讨论】:

    • 或者,import usersurl(r'^users/', users.urls)
    猜你喜欢
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 2018-09-28
    • 1970-01-01
    • 2014-04-13
    • 2016-09-05
    • 1970-01-01
    相关资源
    最近更新 更多