【问题标题】:Attribute Error at API - module object has no attribute 'UserViewSet' - Django Rest FrameworkAPI 上的属性错误 - 模块对象没有属性“UserViewSet” - Django Rest Framework
【发布时间】:2016-01-11 08:56:20
【问题描述】:

设置 Django Rest 框架 -

使用来自http://www.django-rest-framework.org/tutorial/quickstart/ 的快速入门教程

用户和组链接按预期工作。我必须添加另一个链接 - 按照相同的教程为我的应用程序和模型使用适当的命名约定,我得到标题中列出的错误。

我可以注释掉用户和组,员工模型将起作用。我无法在 Django Rest 框架中获得多个链接才能正常工作。有任何想法吗?这是网址代码

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

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
router.register(r'employees', views.EmployeeViewSet)


urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api/', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

【问题讨论】:

    标签: python api rest django-rest-framework django-1.8


    【解决方案1】:

    我发现您的导入有歧义。您可以明确导入名称: from XXXXXXaccess.views import UserViewSet 吗?否则,您将使用员工的视图定义覆盖视图,其中没有定义 UserViewSet,如错误所示。

    from django.conf.urls import url, include
    from rest_framework import routers
    from XXXXXXaccess.views import UserViewSet, GroupViewSet
    from employees.views import EmployeeViewSet
    
    router = routers.DefaultRouter()
    router.register(r'users', UserViewSet)
    router.register(r'groups', GroupViewSet)
    router.register(r'employees', EmployeeViewSet)
    
    
    urlpatterns = [
        url(r'^', include(router.urls)),
        url(r'^api/', include(router.urls)),
        url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
    ]
    

    【讨论】:

    • 您也可以像from employees.views import views as employee_views一样在本地更改模块。
    • 谢谢!那是我想得太多的那些“duh”时刻之一。效果很好! :)
    猜你喜欢
    • 2022-09-23
    • 2011-10-26
    • 2020-08-21
    • 2015-10-15
    • 2019-04-30
    • 2017-03-04
    • 2021-07-15
    • 2021-05-02
    • 2018-09-13
    相关资源
    最近更新 更多